10. Reti ad Accesso Multiplo

Commenti

Transcript

10. Reti ad Accesso Multiplo
10. Reti ad Accesso Multiplo
Abbiamo già visto che le reti possono essere suddivise in due categorie: reti che usano connessioni
punto-punto e reti che usano un singolo canale nel quale sono attestate più stazioni. Queste ultime
sono denominare Reti ad Accesso Multiplo (o anche broadcast network), e le topologie possibili
sono varie, tra cui la topologia Stellare, a Ring (basato sull’interconnessione di vari circuiti puntopunto), a Bus, ad Albero etc.
Nel seguito analizzeremo i meccanismi protocollari per risolvere le contese del bus comune. Questa
funzionalità compete al protocollo di linea (DLL), il quale, in tali reti, viene suddiviso in due
sottolivelli:
1. LLC (Logical Link Control)
2. MAC (Medium Access Control)
L’LLC, basandosi sui servizi messi a disposizione dal MAC, fornisce ai livelli superiori un canale di
comunicazione affidabile (nel senso del protocollo di livello 2). Il MAC invece si occupa della
gestione del link ad accesso multiplo.
Il processo di standardizzazione iniziato negli anni ’80 è stato chiamato IEEE 802 e nel 1987 erano
stati realizzati i seguenti protocolli:
• IEEE 802.2 (LLC)
• IEEE 802.3 anche indicato col nome CSMA/CD, Carrier Sense Multiple Access/Collision
Detection (MAC)
• IEEE 802.4 anche indicato col nome Token Bus (MAC)
• IEEE 802.5 anche indicato col nome Token Ring (MAC)
• IEEE 802.6 anche indicato col nome DQDB, Distributed Queue Dual Bus (MAC)
Nel definire gli standard si è pensato di fornire servizi connection oriented e connectionless. In
particolare nell’LLC sono presenti i tre tipi di servizi:
1. Connection-less
2. Connection Oriented (coincide con l’HDLC in classe ABM)
3. Acknowledged Connection-less, il quale è un servizio connection-less che prevede un ack
a livello end to end.
L’802.3 si basa su una tecnica di accesso al mezzo CSMA/CD. Si ha un physical layer con
collegamento a bus, il quale può essere un cavo coassiale (banda base o banda larga) o un doppino
intrecciato. Di questa famiglia fa parte la classica ethernet anche detta 10 Base 5, che è una rete che
fa uso del cavo coassiale e permette un throughput massimo di 10Mbit/sec.
L’802.4 e l’802.5 sono completamente diversi dall’802.3 e si basano su un accesso al mezzo
controllato da un token. L’802.4 è stato definito per applicazioni industriali, mentre l’802.5 ha una
struttura a ring e la sua standardizzazione fu fortemente voluta da IBM.
Una prima classificazione dei protocolli di MAC può essere effettuata secondo le tecniche di accesso
al messo:
• Accesso Random: si permette a tutte le stazioni di trasmettere in un qualunque istante,
ammettendo che possa avvenire una contesa. Analizzeremo in particolare tre varianti denominate:
1. Accesso Random
2. CSMA
3. CSMA/CD
• Accesso Controllato: si disciplina l’accesso al mezzo e la collisione è in ogni caso evitata. Questo
potrebbe comportare degli sprechi in quanto ogni stazione deve comunque attendere il proprio
turno prima di poter trasmettere anche nel caso in cui le altre stazioni non hanno nulla da inviare.
Due varianti di tale tecnica sono:
1. Centralizzato: vi è una stazione master che disciplina l’accesso eseguendo un polling
oppure sfruttando delle tecniche di prenotazione (le stazioni slave informano il master che
devono trasmettere sfruttando un canale di controllo).
2. Distribuito: Tramite ad esempio un token, oppure tramite una sorta di prenotazione
distribuita (come accade nel protocollo DQDB), oppure sfruttando la tecnica collision
avoidance, usata nel protocollo 802.11 per reti locali di tipo wireless.
Analizziamo più in dettaglio le tecniche elencate.
10.1 Metodi di Accesso Random per le Reti Locali
10.1.1 Aloha
Fu introdotto nei primi anni ’70 da Norman Abramson e dai suoi collaboratori dell’Università delle
Hawaii. L’obiettivo del progetto era quello di permettere lo scambio dati tra i vari atolli delle isole
Hawaii, e dunque si basava su un’interfaccia radio.
In questa tecnica l’asse temporale è indiviso; ogni stazione può dunque trasmettere in ogni istante,
quando ne ha bisogno. I pacchetti (frame) sono di lunghezza fissa e tramite un meccanismo di
feedback ogni stazione riesce a capire se si è avuta una collisione durante la trasmissione dei dati
(questo è realizzato semplicemente ascoltando quello che si ha sul canale trasmissivo e
confrontandolo con quello che si sta trasmettendo; se si ha discrepanza fra queste due informazioni, e
non si ha un guasto nel dispositivo ricevente, vuol dire che si è avuta una collisione). L’ack in questa
tecnica è sempre necessario perché in realtà la stazione ricevente potrebbe ricevere i dati con qualche
interferenza, mentre la stazione trasmittente, nell’ascoltare il pacchetto in trasmissione, potrebbe non
rilevare problemi. Ogni qual volta due stazioni trasmettono contemporaneamente si ha una collisione
e i pacchetti in fase di trasmissione divengono inutilizzabili. Il caso peggiore si ha ovviamente quando
il primo bit di un nuovo pacchetto viene trasmesso mentre un’altra stazione stava inviando l’ultimo
bit di un altro pacchetto. Infatti entrambe le frame verranno corrotte e dovranno essere ritrasmesse
successivamente. Ovviamente le stazioni aspetteranno un tempo random prima di ritrasmettere la
frame perché altrimenti la collisione si ripeterebbe all’infinito.
Il rendimento di tale tecnica è molto limitato. In particolare si osserva che al crescere del fattore di
utilizzazione, aumenta il numero medio di ritrasmissioni per il singolo pacchetto e con esso la
probabilità di avere collisioni. Il massimo throughput ottenibile con l’aloha è il 18,4% della capacità
del canale.
10.1.2 Slotted Aloha
Un’evoluzione naturale dell’Aloha è lo Slotted Aloha. In questo caso l’asse temporale è slottato e
ogni stazione può iniziare la trasmissione solo in particolari istanti temporali scanditi da un clock di
rete globale (all’inizio dello slot, che è sufficiente a contenere un pacchetto). Con tale variante si
dimezza il periodo di vulnerabilità (intervallo temporale in cui la trasmissione di una frame da parte
di un’altra stazione comporta la distruzione del pacchetto), che nel caso dell’aloha puro è due volte il
tempo di trasmissione del pacchetto. Il fattore di utilizzazione massimo è dunque il 36% della
capacità trasmissiva del canale. Rimane comunque il problema dell’instabilità di tale sistema.
10.1.3 CSMA
Il protocollo Carrier Sense Multiple Access (CSMA), consente delle prestazioni superiori all’aloha
poiché le stazioni prima di iniziare la trasmissione di un pacchetto controllano se vi è una
trasmissione in corso (carrier sense). Questo tipo di approccio è anche chiamato listening before
talking (ascoltare prima di parlare). Il CSMA comunque non evita le collisioni a causa del tempo di
propagazione che non è nullo. Il tempo di vulnerabilità è sempre legato al tempo di propagazione
massimo lungo il mezzo che si sta considerando. In realtà, anche se il tempo di propagazione fosse
nullo, la collisione potrebbe avvenire se due stazioni iniziano la trasmissione esattamente nello stesso
istante.
Vediamo come si può gestire il CSMA nel caso più generale. Abbiamo detto che se una stazione
sente che il canale è libero, trasmette. Se la stazione sente che il canale è occupato possono essere
adottate due strategie:
1. si desiste
2. si persiste
Nel caso in cui si persiste, la stazione resta ad origliare fin quando si accorge che il canale si libera.
Se la stazione stessa effettua la trasmissione non appena si accorge che il canale è libero, si parla di
politica 1-persistente. Cioè, in questo caso le stazioni persistono nell’ascolto e trasmettono con
probabilità 1 non appena il canale si libera. Questo meccanismo ha la migliore prestazione in
condizioni di basso carico. In condizioni di saturazione, viceversa, si ha un’elevata probabilità che vi
siano più stazioni in attesa di trasmissione, e non appena il canale si libera, tutte inizieranno la
trasmissione con conseguente collisione. Per evitare questo inconveniente si potrebbe usare una
politica detta p-persistente, cioè le stazioni ascoltano il canale e trasmettono con probabilità p minore
di 1, non appena il canale si libera. Questo potrebbe diminuire la probabilità di collisione nel caso in
cui ci sono più stazioni in attesa di trasmissione. Se a fronte dell’estrazione del numero viene fuori un
1-p, la stazione p-persistente desiste per un attimo, aspetta uno slot temporale, e riattiva il
meccanismo.
Nel caso non persistente, le stazioni che trovano che il canale occupato, ritentano la trasmissione
dopo un certo tempo random.
Se avviene la collisione (rilevata dalla mancata ricezione dell’ack) il messaggio verrà ritrasmesso. Il
tempo minimo per rilevare la collisione è dunque pari a 2 volte il tempo di trasmissione del pacchetto
sul mezzo trasmissivo (indicato con il simbolo τ). Tale intervallo Questo intervallo è chiamato round
trip delay ed è spesso indicato con il simbolo 2τ.
10.1.4 CSMA/CD
Un’ulteriore evoluzione è stata quella denominata listening while talking (ascoltare mentre si parla).
In questa variante, la stazione ascolta il canale durante la trasmissione in modo tale da rilevare la
collisione (il livello del segnale trasmesso è differente da quello contemporaneamente ricevuto). In
caso di collisione dunque, si interrompe repentinamente la trasmissione in corso (poiché essa è ormai
inutile), e si avviano i meccanismi di ritrasmissione senza aspettare il limite di 2τ del caso precedente.
Questo meccanismo è anche indicato col termine CSMA/CD (Carrier Sense Multiple
Access/Collision Detection). Nel caso di collisione, abbiamo detto che si sospende la trasmissione e
si trasmette una particolare sequenza, detta sequenza di jamming (pattern di 32 o 40 bit) che
permette a tutte le stazioni di rilevare la collisione. Su questo meccanismo si è basato lo standard
802.3. Osserviamo che con tale schema, non è possibile determinare in modo esatto il tempo
massimo entro cui una stazione possa trasmettere perché potrebbe accadere che una stazione molto
sfortunata incappi sempre in continue collisioni..
Esistono differenti implementazioni del CSMA/CD, tra cui, la più nota è la ethernet, che prende il
nome anche di 10 base 5 (10Mbit di capacità del canale e 5x100 è la lunghezza massima del bus), la
quale si basa su un bus formato da cavo coassiale a 50 Ω (thick cable). Nel cavo vi sono delle tacche
(ad una distanza minima di due metri e mezzo l’una dall’altra) attraverso le quali è possibile collegare
le stazioni attraverso un sistema che si chiama tappo e sul quale è collocato un transceiver. Il
tranceiver ha funzioni di rilevamento della portante, delle collisioni, etc, mentre la scheda, situata
all’interno della workstation e collegata al tranceiver tramite doppino intrecciato regola la logica
dell’algoritmo (calcola i tempi in cui bisogna trasmettere ed eventualmente quando bisogna
ritrasmettere, effettua il controllo di errore, etc.). Abbiamo già detto che la lunghezza massima del
bus nel 10 base 5 è di 500m, ma è possibile collegare fra loro diversi segmenti tramite dei dispositivi
chiamati repeater (amplificatori di segnale) fino ad un massimo di 2500m (vedi Fig. 10.1-1(c)).
Vi è anche la possibilità di utilizzare un cavo coassiale (sempre a 50 Ω , a 10Mbit/sec.) più sottile,
detto thin cable. In questo caso le stazioni non vengono collegate con dei tappi ma con dei
transceiver a T, ma l’ampiezza massima del segmento è ridotta a 185m. Questo standard è chiamato
10 base 2 (lunghezza massima, circa 2x100m) e offre delle prestazioni decisamente peggiori rispetto
al 10 base 5, però è più economico (vedi Fig. 10.1-1(b)).
Un’altra possibile implementazione del CSMA/CD è la Starlan che non è più basata su cavo
coassiale bensì su doppini. In questo caso la lunghezza massima è simile al caso precedente la la
banda a disposizione è ridotta a circa 1Mbit/sec.
Una variante della starlan è la 10 base T che fa uso di doppini intrecciati ma ha una capacità di canale
di 10Mbit/sec. grazie a dei dispositivi detti hub (vedi Fig. 10.1-1(a)). La rete è tutta compattata su
tali dispositivi e le stazioni sono collegate all’hub tramite doppino intrecciato.
Il nuovo standard, chiamato fast ethernet, con capacità di canale di 100Mbit/sec. fa uso degli hub
(100 base T) e si basa essenzialmente sul 10 base T. Analizzeremo tale protocollo successivamente
nel paragrafo 10.9.1.
Sono anche possibili implementazioni con cavo coassiale non più in banda base (baseband) ma in
banda larga (broadband) con impedenza di 75 Ω .
Andando più in dettaglio sulle caratteristiche dei vari standard, si nota che vi è una limitazione sul
numero di stazioni che possono essere collegate ma soprattutto sulla lunghezza minima della frame
che è di 512 bit. Quest’ultimo vincolo è necessario per evitare che il tempo di trasmissione della
frame sia inferiore al round trip delay. (2τ). Se così non fosse verrebbe vanificato il principio
ispiratore del CSMA/CD, cioè la possibilità di rilevare la collisione prima che la trasmissione termini
e dunque di risparmiare il tempo di attesa pari almeno a 2τ relativo all’ack del pacchetto.
Considerando dunque le velocità in gioco nel cavo coassiale (10 Mbit/sec.), la velocità di
propagazione di 5µsec./Km, e la lunghezza massima permessa di 10 Km (4 segmenti da 2500 metri);
il tempo critico che chiamiamo τ, relativo al trasferimento del messaggio da un capo all’altro di tutto
il sistema, è di 50 µsec.
Fig. 10.1-1
In questi 50 µsec. si possono trasmettere 500 bit (a 10 Mbit/sec.), dunque il pacchetto deve avere
una dimensione superiore a 500 bit affinché la stazione possa rilevare in ogni caso la collisione prima
che venga trasmesso l’intero messaggio. Si fissa dunque che la lunghezza minima della trame nelle
ethernet è di 512 bit (potenza del 2) che corrisponde a 64byte.
Fig. 10.1-2
In Fig. 10.1-2 è rappresentata la struttura della frame nello standard 802.3. Osserviamo che in essa è
presente un campo detto pad (riempimento). Il suo compito è quello di rendere tutte le frame almeno
uguali a 64 byte anche quando il campo dati è vuoto.
I calcoli affrontati si basano sulle caratteristiche di ethernet. In reti con capacità più elevate che
usano il CSMA/CD sono necessarie trame più lunghe.
Vediamo adesso cosa succede quando si ha una collisione. Secondo la logica CSMA/CD, quando si
hanno dei dati da trasmettere, per prima cosa si costruisce la frame, e dunque si esegue il carrier
sense. Appena non si ha più portante la stazione trasmette seguendo la politica 1-persistente. In caso
di collisione il tempo è diviso in slot di 51.2 µsec, e la stazione aspetta 0 o 1 slot prima di tentare la
ritrasmissione. Se si ha ancora una collisione (la seconda) verrà scelto un altro numero casuale x,
questa volta compreso fra 0 e 3, e la stazione aspetterà x slot prima di tentare di ritrasmettere. In
generale, dopo la i-esima collisione, verrà generato un numero casuale fra 0 e 2i -1, che corrisponderà
al numero di slot di attesa prima di ritentare la trasmissione. Dopo la decima collisione consecutiva, il
numero casuale è scelto fra 0 e 1023, e dopo 16 collisioni, la trasmissione è abortita e viene
segnalato un guasto. Questo algoritmo è detto bynary exponentiol backoff.
La tabella sotto indicata riassume i principali pregi e difetti del CSMA/CD:
CSMA/CD
Vantaggi
Svantaggi
protocollo semplice
Con elevato carico le prestazioni degradano
diffusissimo
I dispositivi usati per il rilevamento della portante e delle
collisioni sono analogici e dunque superati
accesso fear (cioè tutte le stazioni possono trasmettere)
fault diagnose
Con carico inferiore al 70% della capacità del canale, Limiti legati al tempo di propagazione
l’efficienza è buona.
Sono avvantaggiate le stazioni che trasmettono frame
lunghe.
Tabella 10.1-1
10.2 Metodi di Accesso Controllato per le Reti Locali
Due importanti esempi di reti locali che sfruttano dei metodi di accesso controllato sono stati
standardizzati e prendono il nome di token bus (IEEE 802.4) e token ring (IEEE 802.5). Nelle
seguenti sezioni analizzeremo più in dettaglio tali protocolli.
10.2.1 Token Bus (IEEE 802.4)
L’802.4 nasce dall’esigenza di utilizzare le reti nell’ambito del controllo di processo. Per tali
applicazione è necessario poter valutare per tutte le stazioni il tempo massimo di attesa prima di
poter trasferire i dati. Abbiamo già osservato come tale tempo è non determinabile nello standard
IEEE 802.3, infatti potrebbe capitare che una stazione entri sempre in collisione e non riesca mai a
inviare i dati. Un semplice sistema in cui si può valutare il tempo massimo di attesa per una
trasmissione è un anello (ring), in cui le N stazioni collegate trasmettono a turno. Supponendo che
ogni stazione impiega al più T secondi per trasferire il dato, il tempo massimo di attesa per ogni
stazione è NT sec. La topologia di rete usata per l’802.4 è un bus, realizzato tramite un cavo
coassiale a larga banda. Il ring viene costruito logicamente indicando ad ogni stazione l’indirizzo del
predecessore e del successore nell’anello. Ovviamente non si avrà nessuna corrispondenza fra la
posizione fisica delle workstation nel bus e la posizione che esse occupano nel ring logico.
Fig. 10.2-1
Quando il ring è inizializzato, la stazione con l’identificativo1 più elevato può trasmettere la prima
frame. Appena finisce, passa al vicino una speciale frame di controllo detta token. Il token viene
dunque propagato lungo il ring logico, e solo la stazione che ha il token può trasmettere evitando
dunque il rischio di collisioni.
Il protocollo 802.4 è molto complesso, e nel seguito faremo una panoramica solo degli aspetti più
importanti. Quando il ring viene inizializzato, le stazioni sono inserite in ordine decrescente, e tale
ordine è anche quello che viene seguito nel passaggio del token. Ogni qual volta una stazione ha il
token è abilitata a trasmettere dati per un certo tempo massimo (THT - token holding time - attorno
ai 10 msec.) dopo di che deve passare il token alla stazione seguente (successiva nel ring logico). In
tale intervallo di tempo possono essere inviati più pacchetti, ed ovviamente, se la stazione non ha
nulla da trasmettere passa subito il token.
Il token bus gestisce messaggi con 4 differenti classi di priorità:
• Classe 6: usata per i messaggi urgenti; ad esempio allarmi, e funzioni di controllo associate
a situazioni critiche.
• Classe 4: usata per i normali messaggi per le operazioni di controllo e per le funzioni di
gestione del ring.
• Classe 2: usata per messaggi relativi alla raccolta di dati non associate a situazioni urgenti.
• Classe 0: usata per messaggi con la più bassa priorità.
1
Ad ogni stazione appartenente al ring logico, viene assegnato staticamente un identificativo univoco.
Associata ad ogni classe di priorità vi è un timer, scaduto il quale si passa alla trasmissione della
classe di messaggi a priorità inferiore. Senza entrare troppo nel dettaglio sulla gestione di questi
timer, è possibile garantire un certo intervallo del THT alla classe 6. Ovviamente le classi a priorità
inferiore dovranno accontentarsi di quello che resta.
Il formato della frame è differente da quello usato nell’802.3, ed è rappresentato in Fig. 10.2-2.
Fig. 10.2-2
Il campo Frame Control è usato per distinguere le frame dati da quello di controllo. Inoltre nelle
frame dati esso contiene la classe di priorità del pacchetto. È anche presente un campo che permette
alla stazione ricevente di inviare l’ack anche se non è in possesso del token.
Nel caso di frame di controllo, il campo Frame Control è usato per identificare il messaggio.
Frame Control Field
Name
Significato
Richiesta del token durante l’inizializzazione del
ring
00000000
Clain_token
00000001
Solit_successor_1
Permette alle stazioni di entrare nel ring
00000010
Solit_successor_2
Permette alle stazioni di entrare nel ring
00000011
Who_follows
00000100
Resolve_contention
00001000
Token
00001100
Set_successor
Ripristino dalla situazione di perdita del token
Usata quando più stazioni vogliono entrare nel ring
Passaggio del token
Permette alle stazioni di uscire dal ring
Tabella 10.2-1
I campi Destination Address e Source Address, contengono rispettivamente l’indirizzo della stazione
di destinazione e quello della stazione sorgente del messaggio.
Il campo Data, può essere al più di 8192 byte quando vengono usati indirizzi di 2 byte, mentre è
limitato a 8174 byte quando sono usati indirizzi formati da 6 byte. Osserviamo che tale campo è
molto più lungo del corrispondente nell’802.3, e questo è giustificato dal fatto che nel token bus non
si hanno problemi di monopolio del canale grazie alla gestione con token.
Analizziamo ora le procedure di gestione del ring. Per permettere ad altre stazioni di entrare nel ring,
periodicamente, la stazione che ha il token invia una frame di controllo di tipo solit_successor. In tale
frame sono inseriti l’indirizzo della stazione e quello del successore. Le stazioni con indirizzo
compreso in tale intervallo, possono entrare nel ring.
Se nessuno risponde alla solit_successor, la stazione continua le normali attività. Se una sola stazione
risponde, essa è inserita nel ring logico, come successore dell’attuale workstation. Se più stazioni
rispondono è attivata una procedura di resolve_contention che permetterà ad una sola delle stazioni
di entrare nel ring. Le altre riproveranno successivamente. Osserviamo dunque che la politica di
gestione del ring è distribuita, poiché tutte le stazioni appartenenti all’anello possono permettere
l’ingresso di ulteriori workstation nell’anello. Esistono altre procedure che permettono
l’inizializzazione del ring e l’auto esclusione di una stazione dall’anello.
Sono inoltre previste delle procedure per l’esclusione di stazioni guaste, e per la gestione di
situazioni anomale, quale la perdita del token.
La tabella sotto indicata riassume i principali pregi e difetti del CSMA/CD:
Token Bus
Vantaggi
Svantaggi
Gestione del throughput eccellente a parte l’overhead dovuto alla Algoritmo pesante
gestione del token
Dinamica ampia
Tecnologia che non ha sfondato, dunque i costi
sono rimasti elevati.
Accesso controllato
Può essere usato anche per applicazioni isocrone
Tabella 10.2-2
10.2.2 Token Ring
Lo standard IEEE 802.5, conosciuto anche con il nome di Token ring si basa su una struttura di
rete ad anello, che collega le varie stazioni tramite dei link punto-punto. A differenza del token bus, il
ring è fisico e l’ordine di percorrenza dell’anello coincide con l’ordine fisico delle stazioni.
Fig. 10.2-3
La struttura tipica di una rete token ring è riportata in Fig. 10.2-3. Da questa possiamo notare un
grosso problema: se il cavo si interrompe in un qualsiasi punto, il ring stesso si interrompe e la
comunicazione diviene impossibile. Per superare tale ostacolo è stata proposta una nuova topologia
che fa uso del wire center (Fig. 10.2-4). Le stazioni sono collegate al wire center con almeno due
cavi coassiali (per ottenere i due flussi di dati dalla stazione al concentratore e viceversa). All’interno
del wire center vi sono dei relè che vengono automaticamente attivati quando la stazione a cui fanno
riferimento si guasta, e come effetto producono il bypass della stazione stessa rendendo dunque il
sistema insensibile ai guasti delle stazioni o dei cavi che collegano le workstation al concentratore.
Fig. 10.2-4
Il token ring, analogamente al token bus, si basa sul concetto di token che permette solo ad una
stazione alla volta di trasmettere, evitando dunque le collisioni. Il token circola continuamente sul
ring quando le stazioni non hanno nulla da trasmettere. Appena si ha un dato da inviare, la stazione
deve prendere il token e cancellarlo dal ring prima di trasmettere la frame (questa azione si risolve
semplicemente invertendo un solo bit del token). Affinché il sistema possa essere realizzato è
necessario che nell’anello vi sia un ritardo sufficiente da contenere il token. Tale ritardo è composto
da:
• 1 bit per ogni stazione del ring
• ritardo di propagazione
L’interfaccia sul ring delle stazioni (Ring Interface) può operare in due modalità:
• Modalità di ascolto (listening mode), in cui la stazione copia il bit che riceve in ingresso
sull’uscita, introducendo un ritardo di 1 bit.
• Modalità di trasmissione (Transmit mode), in cui la stazione interrompe il ring e inserisce
nell’anello la frame che deve inviare. Questa modalità operativa è raggiunta solo dopo che
il token è stato cancellato dal ring.
Vediamo adesso più in dettaglio il formato delle frame e il funzionamento di tale protocollo. Il token
è formato da 3 byte, e la sua struttura è rappresentata in Fig. 10.2-5.
Bytes
1
1
1
SD
AC
ED
Token format
SD = Start Delimiter
AC = Access Control
ED = End Delimiter
PPP T M RRR
Fig. 10.2-5
Il bit T nel campo Access Control ha il valore 0, e contraddistingue il token dalla frame dati. La
stazione che vuole trasmettere, settando tale bit a 1, elimina il token dal ring e si assicura l’accesso
esclusivo.
I tre bit PPP indicano la priorità del token, e dunque le frame che possono essere trasmesse
(vedremo in seguito come sono gestite le priorità nel token ring). Il bit M è usato da una particolare
stazione denominata Monitor Station per evitare che delle frame continuino a circolare
indefinitamente sul ring. Infine i tre bit RRR sono i Reservation bit che permettono la prenotazione
del token con una particolare priorità.
Quindi, una stazione che rileva il token ed ha qualcosa da trasmettere, verifica che la frame da
spedire abbia priorità maggiore o uguale a quella del token, dunque, in caso affermativo modifica il
bit T, trasformando il token in una frame dati, e successivamente accoda la frame che deve rispettare
il formato di Fig. 10.2-6. La frame inviata, percorrerà tutto l’anello fino a tornare alla stazione
trasmittente che avrà il compito di estrarla dal ring, e reinserire il token nel caso in cui non ha più
nulla da trasmettere oppure è scaduto il THT (Token Holding time), e dunque deve necessariamente
passare il token.
Tutto questo meccanismo è supervisionato da una stazione detta Active Monitor che ha il compito di
risolvere eventuali situazioni anomale.
Bytes
1
1
1
SD AC FC
SD = Start Delimiter
AC = Access Control
ED = End Delimiter
FC = Frame Control
2-6
2-6
<5000
4
DA
SA
DATA
FCS
SA = Source Address
DA = Destination Address
FS = Frame Statur
1
1
ED FS
Frame format
Fig. 10.2-6
La struttura della frame è riportata in Fig. 10.2-6. Osserviamo che a differenza dell’802.3 e
dell’802.4, dopo il campo End Delimiter, vi è un ulteriore campo denominato Frame Status che
contiene i bit A e C. Quando la frame arriva nella stazione di destinazione, il bit A è settato. Se
inoltre la frame viene regolarmente processata dalla stazione ricevente, anche il bit C è settato (la
frame potrebbe non essere processata ad esempio a causa della mancanza di buffer disponibili).
Quando la frame ritorna alla stazione sorgente del massaggio, dall’analisi di questo campo si capisce
se è necessaria una ritrasmissione o meno. Infatti vi sono 3 casi possibili:
1. A=0 e C=0; la stazione di destinazione non è presente, oppure è momentaneamente
inattiva. La ritrasmissione è dunque inutile, e il messaggio non può essere inviato a
destinazione.
2. A=1 e C=0; la stazione di destinazione è presente, ma la frame non è stata accettata. Sarà
dunque necessaria una ritrasmissione.
3. A=1 e C=1; la stazione di destinazione è presente e la frame è stata ricevuta
correttamente.
Questo schema assicura un acknowledgement automatico per ogni frame.
L’802.5 fornisce anche uno schema di priorità profondamente diverso da quello disponibile
nell’802.4. Come già accennato in precedenza, infatti, affinché una stazione possa trasmettere, non
basta che catturi il token, ma il messaggio da trasmettere deve avere priorità maggiore o uguale a
quella del token stesso. È inoltre prevista una complessa tecnica di prenotazione la quale assicura che
il prossimo token rilasciato dalla stazione che sta trasmettendo una frame, sarà con la priorità
prenotata dalle stazioni in attesa di trasmissione. Così facendo è evidente che i messaggi a più alta
priorità verranno trasmessi più velocemente degli altri, ma non è assicurato che tutte le stazioni
riusciranno a trasmettere (cosa per altro garantita nel token bus).
Prima di concludere accenniamo brevemente le funzionalità di mantenimento del ring previste dallo
standard 802.5. Per ogni anello vi è una stazione che monitora il funzionamento del ring (monitor
station). Se tale stazione si guasta è previsto un meccanismo che permette ad un’altra workstation di
diventare monitor station. Questa stazione si occupa di risolvere tutte le condizioni di
malfunzionamento del ring, in particolare quelle più importanti sono:
• controllare che il token non venga perso (a causa di disturbi sull’anello)
• ricerca di eventuali interruzioni del ring
• eliminazioni di frame che circolano sul ring. Se ad esempio una stazione trasmette una
frame e si guasta, sarà la monitor station a eliminare la frame dal ring. Questa operazione è
resa semplice dal bit M nel campo AC che viene settato dalla stazione di monitor ogni qual
volta il messaggio passa. Quando tutto funziona correttamente, ogni frame dovrebbe
passare una volta sul monitor; se viceversa la monitor station si accorge che c’è una frame
con il bit in esame settato, la elimina.
10.3 Valutazione delle prestazioni
Valutiamo le prestazioni dei protocolli esposti, facendo particolare attenzione alla valutazione del
massimo throughput che le varie soluzioni permettono di ottenere. Introduciamo il cosiddetto
fattore a, definito come il rapporto fra il tempo di propagazione e il tempo di trasmissione di un
singolo messaggio.
a=
tempo di propagazione
tempo di trasmissi one
Eq. 10.3-1
Il fattore a indica dunque la lunghezza del mezzo di trasmissione espressa in messaggi.
Si possono avere due casi:
•a > 1
•a < 1
Se a<1, normalizzando il tempo rispetto al tempo di trasmissione (assumiamo dunque che il tempo
di trasmissione di una frame sia pari a 1), La sequenza di eventi è:
1. La stazione 1 inizia a trasmettere nell’istante t0.
2. La stazione 2 inizia a ricevere all’istante t0+a.
3. La trasmissione è completata nell’istante t0+1.
4. La ricezione è completata nell’istante t0+a+1.
5. Le altre stazioni possono iniziare la trasmissione di un altro messaggio.
Viceversa se a>1 la sequenza di eventi è:
1. La stazione 1 inizia a trasmettere nell’istante t0.
2. La trasmissione è completata nell’istante t0+1.
3. La stazione 2 inizia a ricevere all’istante t0+a.
4. La ricezione è completata nell’istante t0+a+1.
5. Le altre stazioni possono iniziare la trasmissione di un altro messaggio.
In ogni caso, il tempo totale per un ciclo è 1+a, mentre il tempo di trasmissione è 1; l’utilizzazione
sarà dunque pari a 1/(1+a).
U=
1
1+ a
Eq. 10.3-2
Fig. 10.3-1
Fig. 10.3-2
Lo stesso effetto si ha in una rete ad anello (vedi Fig. 10.3-3) in cui vi è una sola stazione che
trasmette, e dunque aspetta di ricevere la frame da lei trasmessa prima che qualunque altra stazione
possa inviare altri dati.
Fig. 10.3-3
In realtà, nel caso più generale, noi possiamo immaginare che dopo che la stazione sender ha
rilasciato il token, ci potrà essere una delle altre stazioni che potrà utilizzarlo. Diventa dunque
fondamentale la distinzione fra i due casi, perché nel valutare il tempo di ciclo bisogna aggiungere al
tempo di propagazione del token fra la stazione e quella successiva, un tempo che nel primo caso è a
mentre nel secondo è 1.
Valuteremo adesso il massimo throughput ottenibile nelle LAN, supponendo che ad essa vi siano
connesse N stazioni.
Token Passing
Parlando del protocollo token ring, abbiamo avuto modo di osservare che col passare del tempo,
sull’anello transiteranno sia frame di dati che token. Chiameremo ciclo, il susseguirsi di una singola
frame con un token. Indichiamo dunque con:
• C = tempo medio per un ciclo
• DF = tempo medio di trasmissione di una frame dati
• TF = tempo medio di passaggio del token.
È chiaro che il rate medio di ciclo è dato dall’inverso di C e si ha:
1
1
=
C DF + TF
Eq. 10.3-3
Indicando dunque con S il throughput della rete locale normalizzato rispetto alle capacità del sistema,
si ha:
S=
DF
DF
=
DF + TF
C
Eq. 10.3-4
S rappresenta dunque la frazione di tempo che è spesa dal sistema per trasmettere i dati.
Facciamo riferimento adesso alla Fig. 10.3-3. Ricordiamo che il tempo è normalizzato, cioè il tempo
di trasmissione della frame è unitario, mentre il tempo di propagazione è indicato con a.
Sia a<1:
La stazione trasmette la frame nell’istante t0, inizia a ricevere quello che ha trasmesso
all’istante t0+a, e completa la trasmissione all’istante t0+1. La stazione, quindi, emette un
nuovo token, che richiede un tempo pari ad a/N per raggiungere la stazione successiva
(supponendo che la distanza fra le varie stazioni sia costante). Un ciclo dunque richiede un
tempo pari a:
C = 1+
a
N
Eq. 10.3-5
e il tempo di trasmissione è pari a 1. Si avrà dunque che:
S=
Sia a>1:
1
1+ a
Eq. 10.3-6
N
La stazione trasmette nell’istante t0, completa la trasmissione all’istante t0+1, e riceve la
frame spedita all’istante t0+a. A questo punto, emette il token che raggiungerà la stazione
successiva dopo un tempo pari ad a/N. Il tempo di ciclo è dunque:
C =a+
Eq. 10.3-7
a
N
e il throughput sarà dato dalla:
S=
(
1
a 1+ 1
N
)
Eq. 10.3-8
Considerando dunque i risultati ottenuti nell’Eq. 10.3-6 e nell’Eq. 10.3-8, si ha:
1


a
 1+ N
S =
1

a 1 + 1
N

(
a <1
)
Eq. 10.3-9
a>1
CSMA/CD
Consideriamo il tempo suddiviso in slot la cui lunghezza è pari a due volte il tempo di propagazione
(end-to-end) sul mezzo trasmissivo. La durata di uno slot è dunque il tempo massimo richiesto,
dall’inizio della trasmissione, per rilevare una collisione. Supponiamo inoltre che vi siano N stazioni
attive che generano lo stesso carico (il carico può essere espresso come la probabilità che una
stazione ha una frame da trasmettere durante un qualsiasi slot).
Il tempo sul mezzo consiste in due tipi di intervalli. Il primo è l’intervallo di trasmissione, che ha una
durata di 1/2a slot. Il secondo è l’intervallo di contesa, che è una sequenza di slot in cui o vi è stata
una collisione, oppure non vi è nessuna trasmissione. Il throughput è la frazione di tempo spesa
durante gli intervalli di trasmissione.
Determiniamo dunque la lunghezza media degli intervalli di contesa. Iniziamo col calcolare A, la
probabilità che esattamente una stazione tenti di trasferire in uno slot e dunque si impossessi del
mezzo fisico. Questa probabilità è data da:
N  1
N− 1
N− 1
A=
1 
p (1 − p) = Np (1 − p )
 
Eq. 10.3-10
dove p è la probabilità che una stazione trasmetta. Questa funzione assume un massimo quando
p=1/N, e si ha:
N− 1
 1
A = 1 −

 N
Eq. 10.3-11
Per cui la lunghezza media dell’intervallo di contesa, w, sarà:
∞
E[ w ] = ∑ i ⋅P[vi siano i collisioni oppure nessuna trasmissi one seguita da uno
i =1
Eq. 10.3-12
slot con una trasmissi one] =
∞
= ∑ i(1 − A) A
i
i =1
Tale somma converge a:
E[ w ] =
1− A
A
Eq. 10.3-13
Possiamo dunque determinare l’utilizzazione massima, che è data dalla:
1
1
2a
S=
=
1 + 1 − A 1 + 2a 1 − A
2a
A
A
Eq. 10.3-14
In Fig. 10.3-4 è rappresentato il throughput normalizzato in funzione di a per vari valori di N sia per
il token passing che per il CSMA/CD. Osserviamo che per entrambi i protocolli il throughput
diminuisce all’aumentare di a. Le differenze più evidenti, sono riportate in Fig. 10.3-5, che mostra il
throughput in funzione di N. Le prestazioni dei protocolli token-passing aumentano all’aumentare di
N poiché diminuisce il tempo di passaggio del token stesso. Viceversa, le prestazione del CSMA/CD
diminuiscono poiché aumenta la probabilità di collisione.
È interessante notare il valore asintotico di S per N→ ∞ .

 1 a <1
lim S =  1
N→ ∞
a>1

 a
Token:
(
Per il CSMA/CD, sapendo che lim 1 − 1
N→ ∞
CSMA/CD:
)
N− 1
N
= 1 , si ha:
e
lim S =
N→ ∞
Eq. 10.3-15
1
1 + 3.44a
Eq. 10.3-16
Fig. 10.3-4 - Throughput normalizzato al variare di a per reti token-passing e CSMA/CD
Fig. 10.3-5 - Throughput in funzione di N per il token passing e il CSMA/CD
Nei sistemi token passing è anche semplice calcolare un’espressione per il ritardo massimo ottenibile.
Non appena una stazione (ad es. la stazione 1) trasmette, prima di poter inviare un ulteriore
messaggio deve attendere i seguenti eventi:
• La stazione 1 trasmette il token alla stazione 2.
• La stazione 2 trasmette dei messaggi.
• La stazione 2 trasmette il token alla stazione 3.
• La stazione 3 trasmette dei messaggi.
• ........
• ........
• La stazione N-1 trasmette il token alla stazione N.
• La stazione N trasmette dei messaggi.
• La stazione N trasmette il token alla stazione 1.
Quindi il ritardo massimo consiste in N-1 cicli più il tempo di passaggio del token a/N. Si ha dunque:
Caso a<1:
(N − 1)1 +

a a
a a
= N + a − 1−
+
= N+ a− 1
+
N N
N N
Caso a>1:
(N − 1)a +

a a
a a
= Na + a − a −
+
= Na
+
N N
N N
In definitiva:
Token:
N + a − 1 a < 1
D=
a>1
aN
Eq. 10.3-17
Quindi il ritardo aumenta linearmente al crescere del carico, e per un numero finito di stazioni, il
ritardo è costante ed è finito se tutte le stazioni hanno sempre qualcosa da spedire.
Il ritardo per i sistemi CSMA/CD è più difficile da calcolare, e dipende anche dai dettagli del
protocollo (persistente o non persistente). In generale, possiamo dire che il ritardo aumenta
indefinitamente non appena il sistema raggiunge la saturazione. All’aumentare di N, inoltre, la
probabilità di collisione aumenterà, e dunque anche il ritardo medio per la corretta trasmissione delle
frame.
10.3.1 Calcolo del Massimo Throughput nei Protocolli a Contesa
Abbiamo già visto come nel CSMA/CD le prestazioni peggiorano notevolmente all’aumentare del
carico o all’aumentare di a. Osserveremo in seguito come questa è una caratteristica di tutti i
protocolli a contesa. Assumeremo che vi sono un numero infinito di stazioni, ognuna delle quali
genera un traffico infinitesimo (così che il traffico globale sulla rete risulti finito). Supponiamo inoltre
che:
1. Tutte le frame hanno lunghezza costante.
2. Il canale è privo di disturbi.
3. Ogni stazione ha al più una frame da trasmettere. Cioè il pacchetto successivo verrà
generato solo dopo aver inviato quello precedente.
4. Il carico offerto, G, è distribuito secondo Poisson.
5. Per il CSMA/CD, non viene sprecato tempo per il rilevamento della portante e delle
collisioni.
Aloha
Per comodità normalizziamo il traffico generato dalle stazioni rispetto al tempo di
trasmissione della frame. Così facendo possiamo considerare S come il numero medio di
frame generate per frame time. Poiché la capacità del canale è una frame per frame time, S ha
anche il significato di throughput come frazione della capacità.
Il traffico totale sul canale è dato dalla somma delle nuove frame generate dalle stazioni più le
frame da ritrasmettere a causa di collisioni:
G=S+(numero di ritrasmissioni per unità di tempo)
Eq. 10.3-18
Il numero di ritrasmissioni per unità di tempo possiamo considerarlo come il prodotto:
G Pr(una frame sia soggetta a collisione)
Per calcolare tale probabilità consideriamo il caso peggiore. Consideriamo dunque le due
stazioni più distanti l’una dall’altra (come mostrato in Fig. 10.3-1 e in Fig. 10.3-2). Una
frame trasmessa dalla stazione A sarà soggetta a collisione se la stazione B inizierà la
trasmissione in un intervallo di ampiezza 2(1+a) centrato rispetto all’inizio della trasmissione
da parte della stazione A. Tale intervallo è chiamato periodo di vulnerabilità.
Sappiamo che G è distribuito secondo Poisson con rate λ, e dunque la probabilità che vi sia
un arrivo nel periodo di vulnerabilità è 1 − e − 2(1+ a )G . Sostituendo nella Eq. 10.3-18 si avrà:
(
G = S + G 1 − e − 2(1+ a )G
)
Eq. 10.3-19
Da cui si ottiene che il throughput per il protocollo Aloha è:
S = G ⋅e − 2(1+ a )G
Eq. 10.3-20
Slotted Aloha
Calcoliamo adesso il throughput per lo slotted Aloha. Tutte le frame iniziano ad essere
trasmesse al confine fra uno slot ed un altro. Abbiamo già avuto modo di osservare che il
periodo di vulnerabilità di questo protocollo è dimezzato rispetto a quello dell’Aloha ed è
pari a 1+a. Si avrà dunque che il throughput sarà dato da:
S = G ⋅e − (1+ a )G
Eq. 10.3-21
Differenziando l’Eq. 10.3-20 e l’Eq. 10.3-21 rispetto a G, si ottiene che il massimo throughput è
dato da:
Aloha
S MAX =
1
2e(1 + a)
Eq. 10.3-22
Slotted Aloha
S MAX =
1
e(1 + a )
Eq. 10.3-23
Questi risultati differiscono da quelli normalmente riportati in letteratura, poiché solitamente viene
ignorato il parametro a e le Eq. 10.3-20 e Eq. 10.3-21, vengono riscritte:
Aloha:
S = G ⋅e − 2G
Eq. 10.3-24
Slotted Aloha:
S = G ⋅e − G
Eq. 10.3-25
Essi infatti vennero originariamente ricavati per canali via satellite, ma spesso vengono confrontati
con il protocollo CSMA/CD per le LAN. In Fig. 10.3-6 sono riportate le prestazioni dei due
protocolli Aloha e Slotted Aloha nel caso in cui a=0 (Eq. 10.3-24 e Eq. 10.3-25). In realtà questi
grafici sono validi anche per piccoli valori del parametro a (a<0.01).
Fig. 10.3-6 - Performance del protocollo Aloha e Slotted Aloha nel caso in cui a=0.
Il grafico di Fig. 10.3-6 mette in luce la natura instabile dei protocolli a contesa. Appena il carico
offerto al sistema supera un dato valore, dipendente dal protocollo (G=0.5 nell’Aloha e G=1 nello
Slotted Aloha), il throughput diminuisce fino a divenire praticamente nullo. Questo è causato dal
fatto che il numero di frame che non vengono coinvolte in collisioni diminuisce fino a diventare nullo.
Il ritardo è molto più difficile da calcolare esattamente. Definiamo ritardo (delay) l’intervallo di
tempo che intercorre dall’istante in cui un nodo è pronto a trasmettere una frame, all’istante in cui il
messaggio è correttamente ricevuto dal destinatario. Esso sarà dato dalla somma del tempo di attesa
in coda, tempo di propagazione e tempo di trasmissione.
Nell’Aloha il tempo di attesa in coda è nullo (infatti la stazione trasmette immediatamente, non
appena ha qualcosa da inviare). Poiché però vi sono le collisioni, possiamo considerare come tempo
di attesa in coda, il tempo necessario prima che la trasmissione avvenga correttamente (cioè il tempo
totale sprecato in trasmissioni con collisione). Si può vedere che tale tempo è pari a G/S-1 che è pari
a (vedi Eq. 10.3-19):
G
− 1 = e 2(1+ a )G − 1
S
Il ritardo sarà dunque dato da:
{
}
D = e 2(1+ a )G − 1 δ+ a + 1
Eq. 10.3-26
dove δè il ritardo medio per una ritrasmissione. Un algoritmo spesso usato nell’Aloha esegue la
ritrasmissione dopo un tempo t distribuito uniformemente tra 1 e K volte il tempo di trasmissione di
una frame. Il tempo di attesa medio sarà dunque (K+1)/2. A questo bisogna aggiungere un ulteriore
ritardo necessario affinché la stazione si accorga che si è avuta una collisione. Esso è dato dal tempo
necessario per completare la trasmissione (1+a) più, il tempo necessario affinché il ricevente generi il
segnale di acknowledgement (w) più, il tempo di propagazione che il messaggio di ack impiega per
raggiungere la stazione (a)2. Quindi:
Aloha:
K + 1

D = e 2(1+ a )G − 1 1 + 2a + w +
+ a + 1
2 

{
}
Eq. 10.3-27
Per lo Slotted Aloha il ragionamento da seguire è del tutto analogo, con la differenza che c’è un
ritardo medio di ½ slot tra quando la stazione ha una frame da trasmettere e l’istante in cui il
prossimo slot inizia. Si avrà dunque:
Slotted Aloha:
K + 1

D = e (1+ a )G − 1 1 + 2a + w +
+ 1.5a + 1.5
2 

{
}
Eq. 10.3-28
Queste formule confermano l’instabilità di tali protocolli in condizioni di alto carico.
In Fig. 10.3-7 sono mostrati i grafici relativi al ritardo medio, rispetto al carico offerto G e al
throughput S. Osserviamo nella Fig. 10.3-7(b) che il ritardo aumenta con l’aumentare del
throughput, fino al punto di massimo throughput prima calcolato. Oltre tale punto, si vede che S
diminuisce mentre il ritardo continua ad aumentare.
2
Per semplicità assumeremo che i segnali di ack non siano soggetti a collisioni e successive ritrasmissioni.
Fig. 10.3-7
Prima di concludere questa breve trattazione sulle performance osserviamo dei grafici riassuntivi che
mettono a confronto i vari protocolli a contesa. In Fig. 10.3-8 è riportato il grafico del throughput al
variare del carico offerto al sistema per vari protocolli a contesa per a=0.01 e 0.05. Osserviamo
inoltre l’evidente aumento di performance dei vari protocolli CSMA rispetto all’Aloha. Inoltre si
vede chiaramente come all’aumentare di a le prestazioni peggiorano a causa dell’aumento del
periodo di vulnerabilità. In particolare nella Fig. 10.3-8 si osserva come all’aumentare di a (da 0.5 a
1) il throughput dei protocolli CSMA/CD si avvicina a quello dello Slotted Aloha, e cioè non si ha
più nessun beneficio nell’eseguire il carrier sense e la collision detect.
Fig. 10.3-8
Fig. 10.3-9
Infine in Fig. 10.3-9 è mostrato il grafico del ritardo in funzione del throughput. Si vede come il
protocollo CSMA/CD offre un significativo miglioramento nel ritardo e nel throughput rispetto al
semplice CSMA. All’aumentare di a questi miglioramenti si affievoliscono fino a divenire nulli (le
prestazioni diventano simili a quello dello slotted aloha).
10.4 Altri Protocolli per LAN
Vedremo adesso due protocolli che tendono a migliorare le performance (intese come massimo
throughput) del token ring.
10.4.1 Slotted Ring
Si basa su una struttura ad anello simile a quella del token ring. Anche in tale protocollo è presente
una stazione particolare detta monitor, la quale inizializza il ring in modo da contenere un numero
fissato di bit, e monitora l’anello per mantenere costante il numero di bit che circolano. L’intera
sequenza di bit è organizzata in un certo numero slot, capaci di contenere e trasportare una singola
frame di lunghezza fissa. Il formato della frame è rappresentato in Fig. 10.4-1.
Fig. 10.4-1
Inizialmente tutti gli slot sono marcati come slot vuoti (empty slot). Quando una stazione desidera
trasmettere, aspetta che gli arrivi uno slot vuoto, lo contrassegna come pieno e inserisce i dati.
Quindi aspetta che tale dato compia il giro dell’anello e non appena riceve il primo bit della frame,
marca lo slot come vuoto. Inoltre dalla lettura dei Response Bit (il cui funzionamento è uguale a
quello già discusso nel token ring), determina quale azione deve essere eseguita successivamente
(cioè se deve ritrasmettere la frame, o se la stazione destinazione non è presente, oppure se tutto è
andato perfettamente).
Alcune varianti di questo schema permettono alla stazione ricevente di marcare lo slot come vuoto,
rendendo possibile il trasporto di più frame in uno slot durante un giro completo dell’anello. Così
facendo il throughput aumenta, ma si perde il trasporto implicito dell’ack.
10.4.2 Insertion Register
Questa tecnica è una versione più sofisticata dello slotted ring. Per capire il principio di
funzionamento di tale protocollo faremo riferimento alla Fig. 10.4-2, in cui è rappresentata
schematicamente l’interfaccia della stazione con l’anello.
Fig. 10.4-2
L’interfaccia contiene due registri; quando la stazione ha bisogno di trasmettere, carica il pacchetto
nel Buffer di uscita. Questo implica che la dimensione dei pacchetti è limitata superiormente
dall’ampiezza di tale registro, ma a differenza dello Slotted Ring, in questo caso le frame possono
essere di lunghezza variabile.
Quando l’anello è avviato, il Registro a Scorrimento è vuoto. Non appena arriva il primo bit viene
memorizzato nella prima posizione libera del registro e viene aggiornato il Puntatore di Ingresso che
indica il primo bit libero nel registro a scorrimento. Appena è arrivato tutto l’indirizzo di destinazione
della frame, l’interfaccia verifica se essa è la destinataria del messaggio ed in caso affermativo inoltra
il pacchetto verso la stazione, rimuovendolo dall’anello e imposta il puntatore di ingresso nella
posizione iniziale.
Viceversa, se la frame non è indirizzata verso la stazione locale, l’interfaccia comincia ad inoltrarlo.
Ogni nuovo bit che arriva viene posizionato nella posizione puntata dal puntatore di ingresso. Quindi
il registro a scorrimento viene traslato di una posizione verso destra, spingendo fuori sull’anello il bit
più a destra del registro stesso. Se non arriva nessuna informazione in ingresso, a causa di un
intervallo fra i pacchetti, il registro viene traslato ugualmente e la posizione del puntatore è
decrementata di una posizione.
Affinché possa essere inserito un pacchetto sull’anello devono essere verificate le seguenti
condizioni:
1. Esiste un pacchetto in uscita in attesa;
2. Il numero di bit vuoti a disposizione nel registro a scorrimento è almeno pari alla
dimensione del pacchetto da trasmettere.
In presenza delle due condizioni suddette, il messaggio può essere inserito nel ring, e ciò viene
eseguito, commutando il commutatore in uscita, ed inserendo i bit in sincronismo con l’ingresso. I bit
in ingresso che nel frattempo arrivano vengono accumulati nel registro a scorrimento (questo
giustifica la seconda condizione).
Una caratteristica di questa tecnica è quella di impedire ad una stazione di monopolizzare l’anello,
poiché in caso di basso carico, durante la trasmissione di una frame non arriveranno molti bit in
ingresso e dunque il registro a scorrimento si manterrà vuoto rendendo possibile un’altra
trasmissione non appena si avrà un dato da trasferire. Viceversa in condizioni di alto carico, durante
la trasmissione si accumuleranno molti bit nel registro di ingresso, il che impedisce un’altra
trasmissione fino a quando non viene soddisfatta la condizione 2.
10.5 Protocolli per Reti ad Alta Velocità
Negli ultimi anni si è visto un notevole incremento della richiesta di banda a causa principalmente
delle applicazioni multimediali, le quali devono trasferire, non solo dati, ma anche voce ed immagini.
Iniziamo la trattazione di questo argomento introducendo la rete Expressnet.
10.5.1 EXPRESSNET
L’idea di base è stata quella di sfruttare quanto più è possibile il diffusissimo protocollo CSMA/CD,
evitando i noti svantaggi (non potere andare oltre una certa velocità perché altrimenti il tempo
necessario per rilevare una collisione, round trip, pari a 2τ, aumenterebbe troppo degradando le
prestazioni). Le tre possibili topologie individuate sono rappresentate in Fig. 10.5-1.
Fig. 10.5-1
Consideriamo la prima topologia; è costituita da un bus unidirezionale (le frame fluiscono tutte in
una sola direzione). Per assicurare che ogni stazione possa parlare con qualsiasi altra, bisogna
ripiegare il bus, per fare in modo che le stazioni, oltre ad avere un canale su cui scrivere, ne hanno
uno distinto da cui possono prelevare le informazioni dal bus. Le altre due strutture di Fig. 10.5-1 (a
zeta e a spirale elicoidale) sono state introdotte per fare in modo che l’ordine con cui le stazioni
vanno a scrivere è anche quello con cui leggono. In accordo con il CSMA/CD, l’idea di base è quella
che ogni stazione, quando ha un messaggio pronto lo trasmette, dopo avere effettuato un carrier
sensing sul bus. Se rileva il canale libero trasmette il dato altrimenti aspetta. Dato che il bus è
unidirezionale, il rischio di collisione può provenire soltanto da stazioni che sono a monte rispetto
alla stazione che sta tentando di trasmettere a causa sempre del ritardo di trasmissione. Ad esempio
se la stazione 2 rileva che il bus è libero e inizia la trasmissione, analogamente la stazione 1 comincia
la trasmissione, si avrà una collisione. Quello che è stato introdotto è un meccanismo, mediante il
quale la collisione tra due stazioni non distrugge entrambi i messaggi. Per far questo le trame sono
organizzate con un preambolo molto lungo, in testa alla frame. Se si ha una collisione, fra la stazione
1 e la stazione 2, si ha la completa distruzione del messaggio della stazione 23, ma solo il
danneggiamento del preambolo (che non rappresenta un dato da consegnare correttamente a
destinazione) della frame spedita dalla stazione 1 che continuerà dunque il percorso verso la
destinazione. La stazione 2 è 1-persistente (come il CSMA/CD), di conseguenza aspetta che il canale
si liberi, e appende la frame da trasferire.
Questo protocollo, avvantaggia le stazioni up-stream, infatti la stazione n sarà sempre sopraffatta
dalle frame trasmesse dalle stazioni precedenti. In realtà tale problema è superato in quanto ogni
stazione ha diritto di trasmettere una sola volta per ogni ciclo e il ciclo può essere rilevato facilmente,
osservando nel canale di lettura un periodo di silenzio, ossia un periodo di tempo in cui non vi è
passaggio di frame. Così facendo, all’interno di ogni ciclo, le stazioni up-stream avranno la possibilità
di trasferire prima delle stazioni a valle, ma in ogni caso tutte potranno inviare i propri pacchetti
prima che il ciclo finisca.
10.5.2 FASNET
Una rete simile a EXPRESSNET fu sviluppata nei laboratori HP e prese il nome di FASNET. Essa è
una rete a doppio bus unidirezionale (vedi Fig. 10.5-2) indipendenti, in cui il flusso di dati viaggia nel
Bus A, dalla stazione 1 alla stazione N, mentre nel Bus B, dalla stazione N alla stazione 1.
Ogni stazione prima di trasmettere deve sapere dove si trova il destinatario del messaggio, e dunque
inserisce la frame nell’apposito bus. Le stazioni sono collegate ad ogni bus con un doppio tappo, uno
per la lettura e uno per la scrittura. Osserviamo che in entrambi i bus prima vi è il canale di lettura e
dopo quello di scrittura e proprio su questo si basa il funzionamento del protocollo. Infatti, anche in
questo caso prima di trasmettere ogni stazione controlla se c’è la portante in linea, cioè se già c’è
qualcuno che sta trasmettendo. Anche in questo caso la trasmissione avviene a cicli. Consideriamo il
bus A. La stazione 1 è quella che ha per prima la possibilità di trasmettere con successo. La stazione
2 non farà altro che appendere le proprie frame a quelle che fluiscono nella direzione di percorrenza
del bus unidirezionale.
3
La stazione 2 una volta rilevata la collisione bloccherà immediatamente la trasmissione della frame in accordo con la
tecnica Collision Detection.
Direction of Data flow on bus A
Bus A
Terminator
Station
1
2
3
N
Transmit
Receive
Bus B
Direction of Data flow on bus B
FASNET
Fig. 10.5-2
Ogni stazione legge le trame in arrivo tramite il canale di lettura del bus A, verifica se è il destinatario
e, in caso affermativo processa il messaggio, viceversa lo scarta.
Le stazioni 1 ed N sono un po’ speciali, perché hanno la possibilità di mandare dei messaggi di
segnalazione sul bus opposto. Per esempio la stazione N quando si accorge che è terminato il pattern
di bit emette una segnalazione sul bus opposto (bus B) per avvertire tutte le altre stazioni che il ciclo
è terminato. Tutte le stazioni una volta che hanno trasmesso non invieranno nessun altro messaggio
prima dell’inizio di un nuovo ciclo, scandito da una frame trasmessa dalla stazione 1 (oppure dalla
stazione N). La soluzione è molto simile a quella di expressnet, con la differenza sostanziale che in
questo caso non abbiamo una lettura e scrittura sullo stesso bus. Lo svantaggio però è causato dal
fatto che per ogni bus si ha ½ ciclo di trasmissione e ½ ciclo di attesa. Perché fin quando non arriva il
segnale di fine ciclo dalla stazione N alla stazione 1 (e viceversa) non si può più trasmettere sul bus A
(bus B). L’efficienza4 di FASNET è dunque decisamente inferiore all’efficienza di EXPRESSNET.
Questi due protocolli sono stati dei prototipi che successivamente hanno portato alla
standardizzazione di:
1. FDDI: derivazione del token ring, arricchito per migliorare le prestazioni.
2. QPSX, poi chiamato DQDB (poi standardizzato con il nome di IEEE 802.6). Proposta
che preleva da FASNET l’idea di utilizzare due bus unidirezionali.
La battaglia della standardizzazione l’ha vinta il DQDB, mentre l’FDDI si è dovuta accontentare
dello standard ANSI, e successivamente fu standardizzata anche dall’ISO. In realtà il maggiore
interesse si è rivolto verso l’FDDI che però ormai è stata abbandonata, travolta dalle nuove
proposte.
4
Ricordiamo che l’efficienza è il rapporto fra il traffico che si può smaltire in un dato tempo e capacità della linea.
10.6 FDDI
La rete FDDI (Fiber Distributed Data Interface), è topologicamente simile al token ring e permette
la connessione fino a 1000 stazioni. Il mezzo trasmissivo usato è la fibra ottica, e le capacità in gioco
sono dell’ordine di 100Mbps, con distanze fino a 200Km. La rete FDDI può essere usata sia come
LAN, ma date le elevate capacità di canale viene spesso usata come dorsale per il collegamento di
più LAN (vedi Fig. 10.6-1).
Fig. 10.6-1
La struttura tipicamente usata è formata da due anelli controrotanti, i quali assicurano un elevato
grado di fault tolerance, anche in caso di guasto di uno di essi o addirittura di entrambi. Supponiamo
infatti che entrambi i cavi si interrompano per qualche ragione nello stesso punto. I due anelli
possono essere uniti come mostrato in Fig. 10.6-2, rendendo possibile la comunicazione. Se viene
usata questa struttura, la lunghezza dei singoli anelli deve essere al più di 100Km, in modo che in
caso di guasto la lunghezza del ring non superi mai i 200Km, limite massimo definito nello standard.
L’FDDI definisce due classi di stazioni:
1. Classe A, collegate ad entrambi i ring.
2. Classe B, collegate ad un solo ring e dunque più economiche.
La codifica usata, è chiamata 4 su 5, la quale codifica ogni 4 simboli5 con 5 bit sul mezzo fisico. Così
facendo la banda richiesta sul mezzo fisico, per ottenere la capacità di 100Mbps, è di 125Mbps. Se
viceversa si fosse usata la classica codifica Manchester (usata spesso nella LAN), la banda del mezzo
doveva essere di 200Mbps. Ovviamente, così facendo si perde la proprietà di self-clocking della
codifica Manchester, e per sincronizzare il ricevitore alla sorgente del messaggio viene usato un
lungo preambolo.
5
Con il termine simboli, indichiamo i bit a livello di Data Link.
Fig. 10.6-2
Una miglioria apportata rispetto al token ring, riguarda l’overhead sul token. Per migliorare
l’utilizzazione del ring (che nell’FDDI potrebbe essere molto esteso), un nuovo token viene rilasciato
subito la trasmissione del campo FS della frame. La stazione dunque inserisce dei simboli IDLE fino
alla ricezione di un campo SD che indica l’inizio di una nuova frame o di un nuovo token.
In Fig. 10.6-4 è riportato un semplice esempio di trasmissione in una rete FDDI. Si nota che, come
nel token ring, le stazioni sorgenti si occupano di eliminare le frame trasmesse dal ring, una volta che
compiono il giro completo dell’anello. Comunque, a causa dell’elevato tempo di rotazione della
frame, più pacchetti possono viaggiare nel ring contemporaneamente.
Il formato della frame nella rete FDDI è riportato in Fig. 10.6-3.
Fig. 10.6-3
Fig. 10.6-4 - Esempio di trasmissione nella rete FDDI
Vediamo adesso come viene gestito il token. A differenza del token ring, in cui il token è gestito
facendo uso delle priorità e delle prenotazioni nel campo access control dei pacchetti, nell’FDDI
viene usato lo stesso principio sfruttato nelle reti token bus. Questa tecnica viene chiamata timed
token rotation protocol, e si basa sulla conoscenza del target token rotation time (TTRT), che
rappresenta il tempo con cui il token dovrebbe compiere un giro completo del ring.
Per ogni rotazione del token, tutte le stazioni calcolano il tempo intercorso dall’ultimo arrivo del
token. Tale intervallo è chiamato token rotation time (TRT). Se c’è poco traffico nel ring, il TRT
sarà basso, ma all’aumentare del carico sulla rete, tale tempo aumenterà. Esso dunque rappresenta un
indice del carico offerto alla rete. Il protocollo timed token rotation, assicura un accesso fair a tutte
le stazioni, permettendo alle stazioni stesse di inviare i dati in attesa solo se il TRT misurato è
inferiore al TTRT che è fissato. Il principio di funzionamento è piuttosto semplice: una stazione
appena riceve il token calcola la differenza fra il TTRT e il TRT. Questa quantità viene indicata con
token hold timer (THT) e rappresenta il massimo tempo che la stazione può mantenere il token per
trasmettere le proprie frame. Se il THT è positivo, la stazione può trasmettere, viceversa, se il THT
calcolato è negativo, la stazione non può trasmettere i dati in attesa e deve rilasciare immediatamente
il token. Un valore positivo del THT è early token, mentre un valore negativo viene comunemente
indicato come late token. Nel ciclo successivo, solo le stazioni che non hanno trasmesso avranno
diritto a inviare i propri dati, in modo tale che tutte le stazioni potranno trasmettere. Attraverso un
aggiustamento dinamico si può raggiungere una situazione in cui tutte le stazioni riescono a ridurre il
tempo di trasmissione e tutte riescono a trasmettere entro una determinata soglia.
Un ulteriore miglioramento dell’FDDI chiamato FDDI II è quello di prevedere esplicitamente che la
capacità del bus sia frazionata fra una sorta di commutazione gestita con il token e un’altra gestita a
circuito. Cioè, si fa in modo che una certa banda, venga comunque riservata a delle stazioni che
hanno bisogno di trasmettere con una cadenza regolare (alle stazioni che hanno bisogno di un
servizio isocrono). Tale banda verrà assegnata on demand (su richiesta), e dunque in intervalli
periodici vi sono degli slot temporali che vengono comunque riservati alle stazioni che ne hanno fatta
richiesta.
Ovviamente il margine fra la banda riservata per i servizi isocroni e quella riservata ai servizi
asincroni è variabile.
10.7 DQDB
La rete DQDB (Distributed Queue Dual Bus), originariamente chiamata QPSX (Queued Packet
Synchronous Switch), e poi standardizzata dall’IEEE con il nome di IEEE 802.6, è una rete
broadcast slottata particolarmente adatta per reti metropolitane o per l’interconnessione di più LAN.
La capacità trasmissiva infatti può arrivare a 155Mbps, ma sono previste anche delle versioni a 34,
45 e 140 Mbps. Sono inoltre previsti dei meccanismi protocollari per il supporto sia di traffico dati
che di traffico isocrono. Strutturalmente è simile a FASNET, infatti si basa su due bus unidirezionali,
a cui le stazioni (dette anche Access Node) sono collegate6.
6
In realtà potrebbe essere usato un singolo bus ripiegato per migliorare l’affidabilità.
Fig. 10.7-1
Osserviamo che alle estremità dei due bus (vedi Fig. 10.7-1) vi è un particolare dispositivo che ha il
compito di generare continuamente degli slot in cui le stazioni inseriranno le frame, chiamate anche
segmenti. Tali slot sono di lunghezza fissa pari a 53 ottetti di cui 48 utilizzabili per il trasporto di dati
utente. Il primo byte del segmento contiene il campo Access Control (AC), in cui il primo bit,
chiamato busy bit, indica se lo slot è libero (0) oppure se è occupato (1), e il secondo bit, chiamato
request bit, è usato per gestire la coda distribuita di prenotazioni per la trasmissione.
L’accesso agli slot disponibili per il trasferimento di dati asincrono è basato su un algoritmo di coda
distribuita, chiamato queued packed distributed switch (QPSX). Per trasmettere una frame le stazioni
devono conoscere se il destinatario si trova alla destra o alla sinistra. Nel primo caso verrà usato il
bus A, mentre nel secondo caso il bus B.
A differenza dei protocolli a contesa, non appena una stazione ha qualcosa da trasmettere si metterà
in coda (tale coda è distribuita), e invierà i dati solo dopo che tutte le altre stazioni che la precedono
avranno trasmesso. Questo meccanismo è necessario per evitare che le stazioni vicino gli head end
occupino sempre le celle lasciando perennemente in attesa le altre stazioni.
Per implementare la coda distribuita ogni stazione mantiene due contatori RC e CC:
• RC (Request Counter).
• CC (Countdown Counter).
Come mostrato in Fig. 10.7-2 (a), ogni slot contiene due bit nell’AC usati dall’algoritmo: busy bit
(B-bit) e request bit (R-bit). L’accesso agli slot in entrambi i bus è controllato da due distinti
contatori chiamati Request Counter. La richiesta di slot su un bus viene effettuata usando il request
bit negli slot dell’altro bus. Se passa uno slot con il request bit settato, il corrispondente contatore
viene incrementato. Inoltre se passa uno slot vuoto il corrispondente contatore è decrementato di
una unità. Ad ogni istante, i request counter contengono il numero di richieste di slot da parte delle
stazioni a valle della stazione stessa.
Fig. 10.7-2
La Fig. 10.7-2 (c) mostra che, per trasmettere una cella, la stazione trasferisce il contenuto del
request counter, in un altro contatore chiamato countdown counter (CC, anche chiamato CD).
Quindi riporta a zero il contenuto dell’RC e setta il request bit del primo slot ricevuto nel bus
opposto con R-bit pari a 0. Così facendo si inserisce la frame da mandare nella coda distribuita.
Mentre la frame è accodata per la trasmissione su un bus, il passaggio di celle con R-bit pari a 1,
comporta l’incremento del l’RC, come visto in precedenza. Gli slot nel bus in cui si deve trasmettere
il segmento, che passano con B-bit pari a 0, causano il decremento del CC. Il messaggio in attesa
viene spedito non appena il CC è pari a 0 e arriva uno slot vuoto.
Consideriamo, ad esempio, la Fig. 10.7-3. Inizialmente tutti i contatori sono a 0 e nessun messaggio
è in coda Fig. 10.7-3(a). Quindi la stazione D ha pronto un dato da trasmettere sul bus A, ed emette
una richiesta di trasmissione sul bus B. Si ha dunque l’incremento dei RC delle stazioni A, B e C Fig.
10.7-3(b). Dopo, la stazione B intende trasferire un dato sul bus A, e dunque copia l’RC nel CC ed
invia la richiesta sul bus B, che ha come effetto l’incremento dell’RC sulla stazione A Fig. 10.7-3(c).
A questo punto, supponiamo che vengano generate delle celle sul bus A. Appena la prima di esse
passa dalla stazione B, si ha il decremento del registro CC (no la trasmissione della frame). Quando
la stessa cella passa dalla stazione D, viene settato il busy bit e viene trasmesso il messaggio Fig.
10.7-3(d). Infine, non appena passa un’altra cella dalla stazione B, dato che il CC è pari a 0, viene
settato il busy bit e viene trasmessa la frame Fig. 10.7-3(e).
Il maggiore vantaggio di questa architettura è che la gestione della comunicazione è realizzata senza
introdurre overhead, e dunque l’efficienza potrebbe raggiungere il 100, cioè in condizioni di alto
carico tutti gli slot verrebbero utilizzati. Da un’attenta analisi delle performace si è però rilevato che
l’algoritmo QPSX, in condizioni di alto carico, privilegia le stazioni vicine alla testa del bus rispetto
a quelle situate al centro del canale di comunicazione.
Per capire meglio le cause di questa disparità, osserviamo che la stazione più vicina alla testa del bus,
sarà la prima a ricevere la cella e dunque anche la prima a poter utilizzare il request bit, ed inoltre
sarà anche l’ultima a ricevere le richieste di prenotazioni sul bus (che arrivano sul bus opposto) e che
impongono alla stazione di lasciar passare delle celle vuote. In condizioni di alto carico, l’effetto che
si ha è riportato in Fig. 10.7-4(a). Si vede quindi come aumenta il tempo medio di accesso
all’aumentare della dimensione della rete e del bit/rate.
Per evitare questa ingiustizia, viene introdotta una modifica all’algoritmo di accesso chiamata
bandwidth balancing mechanism. Essa consiste nell’introdurre un contatore per ogni bus
(bandwidth balancing counter - BWB), il quale mantiene il numero di frame inviate su quel bus
dalla stazione. Appena tale contatore raggiunge una soglia fissata, la stazione consente il passaggio
di una cella aggiuntiva, incrementando il registro RC, e il BWB viene resettato.
Il bandwidth balancing mechanism ha come effetto collaterale lo spreco di banda che è maggiore per
piccoli valori del modulo di BWB (che indicheremo con M). Questo effetto è mostrato graficamente
in Fig. 10.7-4(c), in cui è graficato il tempo medio di accesso al mezzo al variare di M. Si vede
chiaramente come all’aumentare del modulo di BWB le disparità diminuiscono ma la banda sprecata
aumenta.
Fig. 10.7-3 - (a) Inizialmente la rete è idle. (b) Dopo D emette una richiesta. (c) Dopo B emette una richiesta. (d)
Quindi D trasmette. (e) Infine B trasmette.
Fig. 10.7-4
Anche in questo caso è necessario un compromesso, e di solito il valore usato per M è il numero 8.
Nel caso peggiore, l’efficienza è pari a:
efficienza =
M
100%
M+1
Eq. 10.7-1
e dunque nel caso anzidetto risulta:
efficienza =
8
100% = 88.9%
8+ 1
Questo spreco è causato dall’ultima stazione che dopo la trasmissione di 8 frame, lascerà passare uno
slot che non potrà essere usato da nessuno.
Il protocollo DQDB presenta diverse varianti che tendono a migliorare il comportamento del
protocollo stesso. Una di queste si pone come obiettivo di aumentare l’efficienza oltre il 100%
sfruttando la natura unidirezionale dei bus. In questa variante i nodi possono fungere da nodi di
cancellazione, cioè essi si rendono conto che il messaggio presente su una cella è stato già letto
(perché la stazione sorgente e la stazione destinataria sono vicine) e modificano il busy bit rendendo
disponibile alle stazioni a valle lo slot per un’ulteriore trasmissione. L’onere di questa operazione è
ovviamente a carico della stazione destinataria del messaggio che dunque deve avere il tempo non
solo di leggere l’ottetto relativo al campo AC, ma di leggere tutto l’header in cui c’è scritto
l’indirizzo della stazione destinataria. Dunque la latenza non è più di un ottetto, bensì di 5 ottetti. In
base alle distribuzione del carico, al limite si può anche raddoppiare l’efficienza del canale.
Il maggiore svantaggio del DQDB è che i nodi di accesso sono piuttosto elaborati, e dunque costano
molto. Il successo commerciale di questa rete è stato praticamente nullo. L’FDDI è sicuramente
meno costosa del DQDB (la gestione del token è sicuramente più semplice rispetto alla gestione
della coda distribuita), però ha il grosso problema del cabling; essendo basata su fibra ottica
l’installazione di queste reti è molto costosa.
Il problema si è riaperto, e come obiettivo si è posto quello di riuscire a implementare delle reti ad
alta velocità (che supportano i 100Mbps) economiche.
10.8 Ethernet Switching
L’idea di base è quella di usare la già affermata rete ethernet 10 base T e di sostituire i concentratori
con dei commutatori (switch), i quali permettono la trasmissione contemporanea di più pacchetti se i
mittenti e i destinatari sono diversi. Così facendo è possibile N-uplicare la capacità totale della
classica ethernet.
10.9 Ethernet a 100 Mbps
Successivamente si è però sentita l’esigenza di realizzare una rete che supportava i 100Mbps sullo
stesso dominio di collisione. Ricordiamo che, nel MAC ethernet, la velocità non è un paramentro
indipendente, ma è legato strettamente ad altri due: la lunghezza minima del pacchetto (512 bit) e il
round trip delay (51.2µsec.). Se si vuole realizzare una rete a 100Mbps mantenendo lo stesso
protocollo di MAC si deve aumentare di un fattore 10 la lunghezza della frame (5120 bit) oppure
diminuire di un fattore 10 il round trip delay, limitando ad esempio l’estensione della rete stessa.
Nel 1992 furono presentate due proposte di ethernet a 100Mbps, la prima basata sul vecchio
protocollo CSMA/CD e poi standardizzata con il nome IEEE 802.13 (o 100BaseX) la seconda,
sponsorizzata da HP e AT&T, basata essenzialmente su un diverso MAC rispetto all’802.3, poi
standardizzata con il nome IEEE 802.12 (o 100BaseVG AnyLAN).
10.9.1 100Base-X
Questa rete si basa essenzialmente sul 10Base-T, in cui si è aumentato di un fattore 10 la capacità
trasmissiva del canale e si è ridotto di un fattore 10 la lunghezza massima della rete. Le principali
caratteristiche sono dunque:
• Velocità trasmissiva: 100 Mbps;
• Bit time: 10 nsec.;
• Inter Packet Gap (IPG): 0.96 µsec.;
• Slot time: 512 bit, cioè 51.2 µsec.;
• Distanze ammesse: 220 m; cioè cablaggio attorno ad un hub con raggio 100m e tolleranza
del 10%.
L’obiettivo del 100Base-X è ovviamente quello di mantenere a livello di schede la compatibilità con
il diffusissimo 802.3 usando esattamente lo stesso formato di pacchetto.
100m
HUB
BRIDGE
BRIDGE
HUB
100m
200m
Fig. 10.9-1 - Cablaggio di una LAN 100BaseX
10.9.2 100VG AnyLAN
Lo standard 802.12 è chiamato anche 100VG AnyLAN. Il simbolo VG sta per Voice Grade, e cioè
tale rete può funzionare con 4 coppie di doppino intrecciato non schermato di categoria 3 (chiamato
appunto Voice Grade), mentre AnyLAN perché combina la trasmissione di pacchetti ethernet e
token ring in un’unica tecnologia.
A differenza del 100BaseX, il protocollo 100VG AnyLAN mantiene uguale all’802.3 solo il formato
del pacchetto, mentre il MAC non è più a collisione, bensì è di tipo Demand Priority Access Method
(DPAM). Grazie a questo protocollo, ad ogni stazione è garantita sia una determinata velocità
trasmissiva media minima, che un tempo massimo di ritardo. Queste caratteristiche rendono adatto
questo standard per applicazioni multimediali. Inoltre il protocollo gestisce due livelli di priorità.
La topologia usata può essere a stella o ad albero come mostrato in Fig. 10.9-2.
HUB
(a)
HUB
HUB
(b)
HUB
Fig. 10.9-2 - (a) Topologia a stella. (b) Topologia ad Albero.
Il Demand Priority è un metodo di accesso al mezzo trasmissivo in cui i nodi avanzano una richiesta
all’hub tutte le volte che devono inviare dei dati. Tale richiesta è caratterizzata da un certo livello di
priorità (normale per i pacchetti dati e alta per i pacchetti di applicazioni isocrone). Ovviamente le
richieste ad alta priorità verranno privilegiate dall’hub rispetto alle altre. Il livello di priorità dei
pacchetti viene stabilito dal software applicativo ed è passato come parte dell’informazione del
pacchetto al sottostrato MAC.
La gestione delle richieste di trasmissione viene effettuata dagli hub secondo una politica round
robin. Le stazioni vengono ciclicamente interrogate in un ben determinato ordine fissato per
individuare le richieste di trasmissione. Le richieste vengono soddisfatte nello stesso ordine seguito
per l’interrogazione, ovviamente rispettando i due livelli di priorità.
Nel caso di struttura ad albero, come mostrato in Fig. 10.9-2, il principio di funzionamento è simile.
Le richieste di trasmissioni ad una porta di un hub possono pervenire da una stazione oppure da un
hub di livello inferiore. Analogamente, se viene abilitato alla trasmissione un hub (l’abilitazione
perviene dall’hub di livello superiore), è attivato il normale ciclo che permette la trasmissione ai
dispositivi connessi alle porte secondo l’ordine stabilito, rispettando le priorità. I nodi singoli
possono inviare solo un pacchetto alla volta, mentre un hub di livello inferiore con n nodi collegati,
potrà inviare fino a n pacchetti appena viene selezionato.
Per concludere, osserviamo come negli ultimi anni si sta cercando di tornare verso soluzioni
elementari dal punto di vista tecnologico, perché si è visto come semplicità implica efficienza e bassi
costi.
10.10 Reti via Satellite
Concludiamo la trattazione degli schemi ad accesso multiplo con le reti via satellite. A differenza
delle altre reti precedentemente studiate che sfruttano un canale comune le reti via satellite vengono
usate per realizzare delle WAN.
Fondamentalmente i satelliti possono essere Low-Orbit o Geostazionari, a seconda se hanno una
velocità relativa rispetto alla terra oppure no. Il loro scopo è quello di ripetere il segnale proveniente
dall’Uplink channel (canale di comunicazione usato per la trasmissione verso il satellite) sul
Downlink channel (canale di comunicazione usato per la trasmissione dal satellite verso le stazioni
sulla terra), dopo averlo amplificato.
Possono essere usati diversi schemi per l’accesso al canale comune (uplink channel7), tra cui il FDM,
il TDM e il CDMA. Ricordiamo che nel TDM, l’asse temporale viene suddiviso in slot i quali
vengono di volta in volta assegnati alle stazioni in maniera statica o dinamica. Nell’FDM la banda
viene suddivisa in tanti canali di frequenza, mentre nel CDMA viene utilizzata tutta la banda e le
comunicazioni vengono differenziate attraverso un insieme di codici ortogonali.
Focalizziamo l’attenzione sulle modalità di accesso di tipo TDM dinamiche. L’obiettivo è quello di
assegnare gli slot temporali in modo da ottimizzare l’efficienza del canale. In letteratura sono
presenti 3 schemi che poi sono spesso utilizzati nella realtà:
• Binder
• Crowther
• Roberts
Fig. 10.10-1 - (a) Binder. (b) Crowther. (c) Roberts. In grigio sono indicati gli slot in cui si ha collisione.
Binder
In tale schema si suppone che vi sono più slot che stazioni, in modo tale che od ogni stazione viene
attribuito uno slot, detto home slot. Se una stazione non ha nulla da trasmettere lascierà l’home slot
vuoto. Nelle successive frame, tale slot potrà essere utilizzato da una qualsiasi altra stazione che ne
ha bisogno e sarà dunque soggetto a contesa, risolta con un protocollo simile all’Aloha.
7
Il downlink channel non presenta alcun problema poiché ha un solo trasmettitore che è il satellite.
Se il proprietario desidera riappropriarsi dell’home slot, perché ha qualcosa da trasmettere, deve
semplicemente inviare dei dati su tale slot. Vi sarà una collisione che segnalerà alle altre stazioni di
non utilizzare lo slot in questione. Quindi il legittimo proprietario riuscirà a riconquistare lo slot al
più dopo due frame (lo slot infatti potrebbe non essere utilizzato da nessuno). In Fig. 10.10-1(a), la
frame è suddivisa in 8 slot, assegnati rispettivamente alle stazioni G, A, F, E, B, C, D. L’ottavo slot
non è assegnato a nessuna stazione, e dunque può essere usato da chiunque. Osserviamo che la
stazione F, non utilizza lo slot nella seconda frame. Tale slot verrà dunque usato dalla stazione A
nella terza trama. Nella quarta frame, la stazione F inizia una trasmissione che provocherà una
collisione. Nella successiva sequenza, la stazione F ritornerà in possesso dell’home slot. Per
concludere osserviamo che in tale schema, per capire che lo slot è libero bisogna attendere una
frame, in cui tale slot sarà inutilizzato.
Crowther
Tale schema è quello più usato nella realtà, ed è applicabile quando non è conosciuto a priori il
numero di stazioni, oppure quando tale numero varia frequentemente e lo schema Binder sarebbe
piuttosto inefficiente. In questo caso gli slot non sono preassegnati, e le stazioni competono per
l’utilizzo degli slot stessi secondo la tecnica Slotted Aloha. Una volta conquistato il diritto di
trasmissione su uno slot, tale privilegio viene riconfermato nelle frame successive, fino a quando la
stazione non ha più nulla da trasmettere e lascia lo slot vuoto. In Fig. 10.10-1 (b), l’ottavo slot è
usato dalla stazione E, il quale lo utilizza per due frame. Dopo che nella terza frame questo slot viene
lasciato libero, nella successivà sarà utilizzato dalla stazione D.
Roberts
Questa tecnica richiede che le stazioni si prenotino prima della trasmissione. In ogni frame vi sono
degli slot usati per le prenotazioni, i quali vengono suddivisi in subslot. Quando una stazione vuole
trasmettere, inserisce la sua prenotazione in un subslot scelto casualmente. Se la prenotazione ha
successo, verrà riservato lo slot per la stazione in questione. Ogni stazione deve conoscere la
lunghezza della coda delle richieste di trasmissione in modo da lasciare il giusto numero di slot prima
di effettuare la trasmissione. Come mostrato in Fig. 10.10-1 (c), il numero di slot usati per le
prenotazioni è variabile e dipende dal traffico sulla rete.
Nonostante gli schemi TDM siano i più usati nella pratica, ci sono diversi punti deboli. Per prima
cosa essi richiedono che tutte le stazioni siano sincronizzate, e questo è complicato dal fatto che il
tempo di propagazione dal satellite alle stazioni potrebbe variare. Inoltre è spesso richiesto che le
stazioni siano capaci di trasmettere ad un bit rate elevato, in quanto la durata dello slot è piuttosto
limitata. Ad esempio nello schema ACTS (Advanced Communication Technology Satellite), anche se
una stazione ha un solo canale da 64 kbps, essa deve essere in grado di inserire 64 bit in 578 nsec.; in
altre parole deve operare a 110 Mbps.
10.11 LAN & Internetworking
Le LAN sono tipicamente interconnesse utilizzando come intermediate system dei bridge (vedi cap.
9). Ricordiamo che questi dispositivi lavorano a livello di data link, quindi possono al più operare
conversioni del formato delle frame. Come visto in precedenza tutte LAN hanno il DLL suddiviso
nei sotto livelli MAC ed LLC. Ogni LAN è caratterizzata da un particolare MAC, mentre il livello
LLC definito nello standard 802.2, è comune a tutte le LAN. Da ciò segue che un bridge per
interconnettere LAN differenti deve “semplicemente” convertire i formati delle frame da un MAC
all’atro. Per esempio se si volesse connettere una 802.3 con una 802.4, il bridge dovrebbe operare
come mostrata in Fig. 10.11-1.
Fig. 10.11-1 - Modalità operativa di un bridge.
A prima vista potrebbe sembrare che un bridge per interconnettere due LAN è un dispositivo di
facile implementazione, ma in realtà le cose non stanno così. I problemi sono causati essenzialmente
dai diversi formati delle frame (vedi Fig. 10.11-2), dai diversi rate a cui varie LAN lavorano, nonché
dal fatto che alcune LAN, quali 802.3 e 802.4 impongono una dimensione massima per le frame,
rispettivamente 1500 bytes e 8191bytes, mentre l’802.5 non impone alcun limite, per non parlare poi
dei problemi causati dal fatto che alcune LAN consentono di gestire traffico con diversi livelli di
priorità, mentre altre no. Di seguito sono presentati due differenti approcci per l’implementazione di
un bridge.
10.11.1 Transparent Bridges
L’idea alla base dei Transparent Bridges è quella di rendere del tutto trasparente l’interconnessione
di più LAN, nel senso che una volta collegato, il bridge avrebbe dovuto autonomamente costruire le
tabelle di instradamento, senza richiedere alcun intervento dall’esterno, inoltre nessuna modifica
doveva essere effettuata alle stazioni connesse alle varie LAN. Un transparent bridge lavora in
promiscuous mode, ossia legge tutte le frame che viaggiano sulla LAN, e nel caso in cui si rende
conto, consultando un’opportuna tabella, che la destinazione della frame sta su un’altra LAN
instrada quest’ultima su un opportuna linea d’uscita, in caso contrario la frame viene scarica. La
tabella di instradamento viene costruita utilizzando l’algoritmo di backward learning, che è stato
già descritto nel cap. 8.
Fig. 10.11-2 - Differenza nei formati delle frame delle lan 802.x.
10.11.2 Source Routing Bridge
I source routing bridge garantiscono un routing generalmente migliore rispetto a quello ottenibile
con i transparent bridge, ma ciò a costo della trasparenza. In tal caso i nodi della rete devono
determinare il percorso da far seguire alla frame, e quindi inserirlo all’interno della frame. Questo
percorso viene indicato specificando le sequenze LAN-Bridge che la frame dovrà percorrere, a tal
fine ad ogni LAN è associato un numero da 12 bit (diverso per tutte le LAN), mentre ad ogni router
è associato un numero da 4 bit. Quando una stazione deve inviare un messaggio ad un utente
collegato ad un’altra rete pone il bit più significativo del destination address della frame pari ad uno.
I bridge per ogni frame che viaggia sulla LAN controllano il bit più significativo del destination
address. Nel caso in cui esso è settato ad 1, controllano se il numero del bridge che segue quello
della LAN da cui è stata prelevata la frame coincide con il numero del bridge stesso, in tal caso
instradano la frame sulla linea d’uscita associata alla LAN il cui numero identificativo segue il
numero bridge nel path indicato dentro la frame. Affinché la generica stazione possa indicare il
percorso da far seguire alla generica frame, deve essere previsto un meccanismo mediante il quale sia
possibile ricavare il percorso di routing per qualunque nodo della internet. Le soluzioni possono
essere differenti, per esempio si potrebbe fare il download delle tabelle di instradamento per ogni
nodo, oppure si potrebbe pensare ad una strategia in cui se una stazione non conosce il percorso di
routing per raggiungere un’altra stazione chiede informazioni alle stazioni vicine oppure si potrebbe
usare una discovery frame. In quest’ultimo caso, la destinazione per cui si vuole ricavare il percorso
di routing viene inserita all’interno di questa discovery frame. I bridge instradano le discovery frames
su tutte le LAN a cui sono collegati, realizzando in sostanza il flooding della discovery frame.
Arrivata a destinazione la discovery frame viene rispedita indietro, e su questa frame di ritorno viene
memorizzato il percorso seguito.

Documenti analoghi