Copyrigtht © 1996, 1997 Universita' di Firenze. All rights reserved.
Free license available.
Una rete ATM é costituita da un insieme di host e di switch connessi tra loro in maniera punto-punto, di solito con fibre ottiche per garantire velocità; gli switch sono a sua volta connessi tra di loro in modo da interconnettere un numero elevato di host. Comunque dal punto di vista logico la rete ATM é un tutt'uno ai fini degli host.
Ovvero agli host appare un'unica rete su cui potersi collegare come se fosse un unica rete fisica.
Le reti ATM supportano due tipi di "interfaccia", dove con interfaccia intendiamo protocolli per lo scambio di dati relativi al collegamento, alla segnalazione ecc.
In realtà la definizione di NNI é imprecisa in quanto si dice che tra due switch, connessi sia fisicamente che logicamente (ovvero attraverso un altro switch), l'interfaccia é NNI se tra di loro vengono scambiate celle del protocollo NNI le quali sono leggermente diverse dalle celle UNI.
Il protocollo NNI viene usato solo all'interno di una rete privata per cui il collegamento con una rete pubblica ATM (ad esempio gestita dall'operatore telefonico) viene fatto con un Public UNI, in quanto la rete privata non scambiando con la rete pubblica alcuna informazione (ad es. di gestione) non usa il protocollo NNI.
Differenze tra UNI ed NNI sono ad esempio nel fatto che l'header di una
cella ATM che passa su di una interfaccia NNI é diverso rispetto
a quello di una cella che passa su di una UNI in quanto i bit di GFC vi
sono sulla interfaccia UNI e non sulla NNI dove il campo VPI viene espanso
a 12 bit.
Come abbiamo già notato, la rete ATM é connection oriented. Ciò vuol dire che prima di trasferire i dati si deve instaurare una connessione tra i due host. Le connessioni possono essere di due tipi:
I virtual path non sono altro che un insieme di virtual channel e sono forniti ad esempio dagli operatori telefonici ad un soggetto privato che può cosi' gestirsi autonomamente i virtual channel instaurabili in un virtual path. Inoltre é proprio un fattore dovuto alla nascita "telefonica" di ATM il fatto che il campo sia gerarchizzato in VPI e VCI, ciò per facilitare le operazioni di switching che non necessariamente devono avvenire al livello di VCI. Ad esempio, se un privato interconnette due reti ATM tramite l'operatore pubblico quest'ultimo non dovrà commutare i singoli virtual channel perché questa operazione verrà effettuata solo all'interno della rete del privato; cosi' si può facilitare il processo di switching.
Quindi ciò che ci interessa è lo studio dei Virtual Channel poiché sono essi il cuore dello switching ATM.
La coppia VPI/VCI ha solo significato locale nel senso che vale esclusivamente all'interno di un link, ogni volta che la connessione attraversa uno switch la coppia VPI/VCI in genere viene cambiata ed in questo consiste il meccanismo di switching ovvero nel determinare in base ad una tabella di instradamenti (che vedremo poi come può essere costruita) come si mappano le connessioni in base alle porte di provenienza ed al VPI/VCI delle celle.
Le connessioni "virtuali" possono essere di due tipi:
La connessione inizia con la segnalazione su un "well-known channel"
(analogo al well-known address del TCP/IP) dedicato alla segnalazione tra
host e lo switch a cui esso é collegato; tipicamente sul VPI=0 VCI=5.
Come si vede in figura A per parlare con B chiede la connessione al suo
switch il quale a sua volta fa' lo stesso con un altro switch sul percorso
verso B. Per adesso non ci preoccupiamo di sapere come lo switch decide
quale é il prossimo switch sul percorso; sempreché ce ne sia
uno perché ci potrebbe essere connessione diretta tra lo switch e
B oppure B potrebbe non essere raggiungibile perché l'indirizzo é
sbagliato.
E' da notare come le reti ATM ricadano in quel tipo di reti definite
"Non Broadcast" ovvero non c'è un modo "nativo"
(come invece c'è in Ethernet) per eseguire broadcast o multicast.
Questo comporta notevoli difficoltà per alcuni tipi di connessione
come vedremo.
I due tipi di connessione che in ATM si possono effettuare sono:
N.B.: sottolineiamo il concetto di "connessione ATM" in quanto all'host possono benissimo arrivare celle da diversi host ma non sullo stesso VPI/VCI in quanto non é possibile risalire all'host proprietario della cella ATM se non osservando da quale VPI/VCI proviene.
Non esistono pertanto connessioni multipoint to multipoint al livello ATM ma come vedremo dobbiamo ricorrere ad artifici di livello superiore.
E' da notare anche che essendo la rete ATM "orientata alla connessione" ed a "commutazione di pacchetto" ma non datagramma (in cui i pacchetti transitano per collegamenti diversi pur arrivando alla stessa destinazione) bensì a circuito virtuale (i pacchetti della stessa connessione seguono tutti lo stesso percorso) non c'è possibilità che arrivino in ordine errato, inoltre se al protocollo AAL (che come vedremo fà le veci del livello di trasporto, come il TCP) dell'host in questione non arriva una cella ma arriva la successiva, non c'è dubbio che la cella precedente sia stata persa (dropped) da parte di uno switch il cui buffer in trasmissione é andato in overflow . In questo modo si evita la necessita' di tecniche "Go back N" perchè riusciamo a capire quante e quali celle sono state perse.
Ovviamente le applicazioni di un host non trasmettono e ricevono celle bensì dei flussi di dati (stream) per cui nasce la necessita' di introdurre un livello di trasporto che mappi le connessioni stream oriented nelle celle ATM.
Questo livello é il cosiddetto AAL (ATM Adaptation Layer). Ve ne sono di molti standardizzati ed altri in via di standardizzazione. E' importante che una volta stabilita la connessione gli host si mettano d'accordo su quale AAL usare.
Prima di elencare gli AAL disponibili é bene fare un ulteriore riflessione su ciò che si definisce QoS.
Le sorgenti che generano traffico hanno richieste diverse ed ATM Forum ha classificato in categorie questi "tipi" di trasmissione:
In relazione a questo tipo di sorgenti sono stati studiati vari AAL , inoltre si sono adottate delle tecniche di Connection Admission Control (CAC) con lo specifico intento di controllare se ad una connessione che richieda una particolare QoS essa possa venir fornita, in caso di risposta negativa la connessione non viene instaurata. A carico della rete c'è anche il cosiddetto Usage Parameter Control (UPC) per controllare che una sorgente "mantenga gli impegni" fissati in fase di CAC; se infatti una connessione su cui doveva viaggiare una certa mole di dati con una certa temporizzazione conosciuti e su cui erano state assegnate le risorse, di colpo trasmette molto di più essa va' ad inficiare la qualità delle connessioni che con lei condividono il link. Questo "mancato rispetto del contratto" danneggia le altre connessioni e la rete deve abbattere la connessione "fraudolente" perché altrimenti essa stessa (la rete) verrebbe meno al "contratto" stipulato con le altre connessioni che non avevano modificato il loro comportamento.
Senza ricorrere all'abbattimento uno switch può decidere di sagomare il traffico di una connessione scorretta per farla rientrare nei suoi limiti (traffic policing)
Dal punto di vista architetturale sono stati standardizzati o sono in
via di standardizzazione, alcuni AAL orientati a particolari tipi di traffico.
Essi hanno caratteristiche diverse ma poiché questo non é
che un introduzione non ci dilungheremo sulle caratteristiche nel formato
dei dati del livello AAL. Ci basti sapere che, opportunamente parcellizzato,
il dato prodotto dal livello AAL viaggia come payload nella cella ATM.
Per finire un commento su come si realizza il multicastig (e quindi anche il broadcasting) su di una rete ATM. Ci sono tre metodi:
Multicast Server
Overlaid Point to Multipoint connection