Telemat Lab's home page


 

Copyrigtht © 1996, 1997 Universita' di Firenze. All rights reserved.

Free license available.

 

IP su ATM

 

di: Fabrizio Badini


Concetti fondamentali di una rete ATM

home page Pagina Succ.

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:

  1. CBR Costant Bit Rate: la sorgente emette dati con una temporizzazione fissata ed una quantità di bit fissata. Si richiede che la rete trasporti tutti i dati con la temporizzazione giusta.
  2. VBR Variable Bit Rate
  3. ABR Available Bit Rate: come VBR NRT solo che non viene richiesta una certa QoS bensì fatta una indicazione e ci si accontenta di un best effort controllando però lo stato della rete ed evitando la congestione
  4. UBR Unspecified Bit Rate: non viene neppure fatta una indicazione e la rete non segnala neppure l'avvenuto dropping di una cella ne cerca di evitare forti delay.

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:

  1. VP-Multicating: in questo meccanismo tutti gli host che intendono partecipare ad uno stesso gruppo di multicast condividono un unico VPI mentre vengono distinti dai VCI che pero' devono essere unici per ogni host. Questa tecnica , non ancora ben standardizzata, si allontana abbastanza dallo standard in quanto i protocolli UNI ed NNI dovrebbero garantire switching solo VP e garantire l'unicità dei VCI uno per ogni host (peraltro questa cosa limita ovviamente la dimensione dei gruppi)
  2. Multicast Server: é la più semplice concettualmente. Esiste un server che ha una connessione punto vs. multipunto con gli host che partecipano al multicast mentre questi ne hanno una punto vs. punto con il server. Banalmente un host per parlare con tutti comunica con il server il quale ritrasmette a tutti e gli altri ascoltano. Il problema é che il server é molto complesso ed é il vero collo di bottiglia del gruppo.
  3. Overlaid Point-to-Multipoint Connections: tutti i nodi instaurano una connessione multipla con tutti. Una volta che tutte le connessioni sono operative il funzionamento é facile ma ci sono due problemi fondamentali. Innanzitutto la rete é molto più carica di connessioni rispetto ai casi precedenti ed i singoli host nonché gli switch coinvolti hanno grossi problemi con la dimensione delle tabelle di routing che ovviamente crescono. Inoltre non é ancora chiaro come ci si può iscrivere e togliere dal gruppo in quanto va segnalato a tutti gli host e gli switch coinvolti di modificare (e non c'è ancora un protocollo che sia standard sulla modifica di connessioni punto-multipunto) le loro connessioni. In sintesi é molto più pesante dal punto di vista della segnalazione.

Multicast Server



Overlaid Point to Multipoint connection

 


Telemat Lab's home page

home page Pagina Succ.