↓La sigla ATM sta per
Asynchronous
Transfer Mode, ed identifica una particolare rete progettata per
trasportare indifferentemente traffico di diversa natura, sia di tipo
dati che real-time, che per
questo motivo è indicata anche come
b-isdn.
Il suo funzionamento si basa sul principio della
commutazione di
cella (
cell switching), dove per
cella si intende un pacchetto di lunghezza fissa di 53 byte. I primi 5
byte delle celle contengono un identificativo di connessione, ed il loro
instradamento avviene mediante dei circuiti virtuali. La commutazione
delle celle tra i nodi di rete ha luogo in maniera particolarmente
efficiente, e questa è una delle caratteristiche più rilevanti dell’ATM.
18.2.1
Architettura
La rete ATM viene indicata anche come una Overlay Network, in
quanto operativamente si sovrappone ai livelli inferiori di una
rete esterna.
Dal canto suo, ATM è strutturata sui tre strati
funzionali di adattamento (AAL), di commutazione
atm,
e fisico. Mentre i nodi ai bordi della rete devono realizzare tutti e
tre gli strati, i nodi interni svolgono solo le funzioni attuate da
quelli inferiori. La tabella
18.1↓
riporta le principali funzioni svolte dai tre strati, e pone in evidenza
come in uno stesso strato siano identificabili diverse sotto-funzioni.
Table 18.1 Stratificazione delle funzioni in una rete
ATM
18.2.2
Strato fisico
Il mezzo primario di trasmissione (con cui è in contatto il sotto-strato
pm) per ATM è la fibra ottica, in
accordo alla struttura di trama dell’
sdh/sonet,
per la quale sono state standardizzate le velocità di 1.5 e 2 Mbps (
ds1/e1), 155 Mbps (
oc3)
e 622 Mbps (
oc12c). La velocità di 155
Mbps è disponibile anche su
Fibre Channel,
e su cavo ritorto, mentre la velocità di 100 Mbps è disponibile su
fddi. Infine, sono previste anche velocità
di interconnessione di 139, 52, 45, 34 e 25 Mbps.
In funzione del mezzo trasmissivo, può variare la struttura
di trama (mostrata in
figura) in cui vanno inserite le celle. Il quinto byte della
intestazione di cella, contiene l’Header Error Code (hec)
calcolato sui 4 byte precedenti, che viene usato in ricezione per
rivelare due errori e correggerne uno. Nel caso in cui la sorgente
produca dati a velocità inferiore a quella del collegamento, sono
inserite celle aggiuntive di tipo idle,
rimosse al ricevitore. Infine, la delimitazione
delle celle è attuata in ricezione in base alla correlazione tra i
primi quattro byte dell’header, ed il campo hec
dello stesso.
Mentre lo strato fisico si occupa di trasmettere
e ricevere celle, lo strato ATM si occupa di elaborarle. Nei nodi di
frontiera, le celle sono multiplate e demultiplate, mentre dentro la
rete, sono commutate tra gli ingressi e le uscite.
Nei primi quattro byte dell’header di cella trova
posto l’etichetta necessaria a realizzare il trasferimento a
circuito virtuale; questa etichetta è suddivisa in due campi, il Virtual
Path Identifier (vpi) ed il Virtual
Channel Identifier (vci).
Il motivo della suddivisione risiede nella
possibilità di raggruppare logicamente diversi circuiti virtuali che
condividono lo stesso percorso nella rete. Nei collegamenti di cui è
composto il percorso comune, viene usato uno stesso vpi per tutte le
celle, mentre le diverse connessioni
su quel percorso sono identificate mediante diversi vci. L’instradamento
congiunto delle celle con uguale vpi è effettuato nei nodi (vp switch),
che si occupano solo di
scambiare il
vpi delle celle, e di
porle sulla porta di uscita corretta, come indicato dalle tabelle di
instradamento.
La sequenza dei nodi attraversati
dall’instradamento è indicata come Virtual Path Connection (vpc), è composta da zero o più vp
switch, ed è delimitata tra due nodi (vc
o vp/vc switch)
che elaborano anche i vci. La sequenza
dei vc switch che elaborano i vci,
e che si estende tra due nodi che terminano lo strato di adattamento, è
indicata invece con il termine Virtual Channel Connection
(vcc)
e comprende uno o più vpc, coincidendo
spesso
con il percorso tra ingresso ed uscita della rete ATM.
La creazione delle tabelle di instradamento può
essere di tipo manuale, dando luogo ad una Permanent Virtual
Connection (pvc), oppure può
essere il risultato di una richiesta estemporanea, dando luogo ad una Switched
Virtual Connection (svc);
l’oggetto della richiesta può essere una vcc od una vpc,
ed in questo secondo caso la vpc verrà
usata per tutte le vcc future tra i
due nodi.
18.2.4
Classi di traffico e Qualità del Servizio (QoS)
Nella fase di setup, sono attuate delle
verifiche dette Connession Admission Control (cac)
per assicurarsi che la nuova connessione non degradi le prestazioni di
quelle già in corso, nel qual caso la chiamata è rifiutata. La sua
accettazione determina invece la stipula tra utente e rete di un Traffic
Contract a cui la sorgente si deve attenere. Nel corso della
trasmissione, i nodi ATM verificano che le caratteristiche del traffico
in transito nelle vcc siano conformi
al rispettivo contratto, svolgendo un Usage Parameter Control (upc) detto anche policing.
Prima di proseguire, forniamo però alcune definizioni.
Come anticipato, ATM si è sviluppata per
trasportare diversi tipi di traffico, classificabili come segue, nei
termini dei parametri indicati di seguito:
- Constant Bit Rate (cbr)
identifica il traffico real-time come la voce ed il video non codificato;
- Variable Bit Rate (vbr)
può essere di tipo real time (es. video mpeg)
oppure no, ed allora può tollerare variazioni di ritardo (cdv)
ma non l’eccessiva perdita di dati (clr);
- Available Bit Rate (abr)
tenta di sfruttare al meglio la banda disponibile. Il contratto
prevede la fornitura di un mcr da
parte della rete, e le sorgenti sono
in grado di rispondere ad una indicazione di congestione, riducendo di
conseguenza l’attività;
- Unspecified Bit Rate (ubr)
condivide la banda rimanente con abr,
ma non gli è riconosciuto un mbr, né
è previsto nessun controllo di congestione. Le celle in eccesso sono
scartate. Idonea per trasmissioni insensibili a ritardi elevati, e che
dispongono di meccanismi di controllo di flusso indipendenti.
Le classi di traffico sono descrivibili mediante
i parametri
- ) applicabile a tutte le classi, ma è l’unico parametro per cbr;
- Sustainable Cell Rate (scr)
assieme ai tre seguenti, descrive le caratteristiche di vbr:
velocità comprese tra scr e pcr
sono non-conformi, se di durata maggiore di mbs;
- Minimum Cell Rate (mcr)
caratterizza la garanzia di banda offerta alla classe abr;
- Maximum Burst Size (mbs)
descrive la durata dei picchi di traffico per sorgenti vbr.
Il contratto di traffico, mentre impegna la
sorgente a rispettare i parametri di traffico dichiarati, vincola la
rete alla realizzazione di una Quality of Service (QoS),
rappresentata dalle grandezze (tra le altre)
- ) assieme alla seguente, è molto importante per la classe cbr;
- Cell Delay Variation (cdv)
rappresenta la variabilità nella consegna delle celle, dannosa per le
applicazioni real-time. La presenza di una cdv
elevata può inoltre provocare fenomeni di momentanea congestione
all’interno della rete, e può essere ridotta adottando degli shaper, che riducono
la variabilità di ritardo a spese un aumento di ctd;
- Cell Loss Ratio (clr)
rappresenta il tasso di scarto di celle del collegamento.
Nel caso in cui il policing rilevi che una
connessione viola le condizioni contrattuali, può intraprendere
svariate azioni, e se può, non scarta immediatamente la cella, ma
provvede comunque a segnalare l’anomalia, ponendo pari ad uno il bit Cell
Loss Priority (clp) dell’header.
Ciò fa si che la cella divenga scartabile in caso di
congestione in altri nodi. Un ulteriore campo dell’header, il Payload
Type (pt), può infine ospitare
una segnalazione in avanti, che manifesta il fatto che la cella
in questione ha subito congestione.
18.2.5
Indirizzamento
I nodi di una rete
atm
sono identificati da un indirizzo di 20 byte, di diverso significato nei
casi di reti private o pubbliche, come indicato dal primo byte (
afi).
Nel primo caso, detto
formato
nsap,
il
dcc o l’
icd
sono assegnati dall’ISO, e l’indirizzo del nodo è disposto nei 10 byte
indicati come
High-Order Domain Specific Part (
ho-dsp).
I sei byte dell’
End System Identifier (
esi)
sono forniti dal dispositivo connesso ai bordi della rete, e coincidono
con il suo indirizzo
Ethernet: in tal modo la rete comunica un
prefisso che identifica il nodo di ingresso, ed il dispositivo lo
associa al proprio
esi per forgiare il
proprio indirizzo completo. Infine, il byte
sel
può essere usato per multiplare più entità presso il terminale, ed è
ignorato dalla rete.
Nel caso di rete pubblica, il campo ho-dsp
è ristretto a 4 byte, e gli 8 byte di e.164
contengono un indirizzo appartenente alla numerazione telefonica
mondiale.
18.2.6
Strato di adattamento
Come mostrato in tab.
18.1↑,
l’
aal è suddiviso in due componenti,
Segmenting
and Reassembly (
sar) e
Convergence
Sublayer (
cs); le funzioni di
quest’ultimo sono ulteriormente ripartite tra una
Common Part (
cpcs) ed un
Service Specific cs (
sscs).
Il compito di
aal
è quello di generare i 48 byte del payload per le celle
atm,
a partire dalle
sdu ricevute, e di
ricomporre queste ultime in ricezione, a partire dal risultato della
loro demultiplazione operata (in base alle etichette
vpi/vci)
dallo strato
atm ricevente. Mentre il
sar si interfaccia con lo strato
atm, il
cs
interagisce con i protocolli superiori, e le esatte operazioni svolte
dipendono dalla natura del traffico trasportato: la fig.
18.14↓ mostra quattro
diverse situazioni.
La classe A è un classico caso
cbr,
ed in tal caso si adotta un
aal di
tipo 1, in cui lo strato
cs è assente,
ed il
sar utilizza il primo dei 48
byte di cella per inserire informazioni di controllo sull’ordine di
consegna, e di ausilio al recupero della temporizzazione di sorgente
presso la destinazione.
La classe B (aal
2) individua sorgenti multimediali a pacchetto, mentre per la C (aal
3/4 o 5) siamo più tipicamente in presenza di una connessione dati a
circuito virtuale. In questa categoria rientra il trasporto di
collegamenti X.25 e frame relay, sia di tipo abr
che ubr. Lo stesso tipo di aal
(3/4 o 5) è infine usato anche per la classe D, in cui rientra
pienamente il trasporto di traffico ip
su atm.
Quando il cs di
aal 3/4 riceve una sdu
(di dimensione massima 216 − 1)
dagli strati superiori, la allinea ad un multiplo di 32 byte, e vi
aggiunge 32 byte in testa ed in coda con informazioni di lunghezza e di
controllo di integrità. La cs-pdu
risultante è passata al sar, che la
suddivide in blocchi di 44 byte, a cui ne aggiunge 2 in testa e due in
coda,
e completa così la serie di 48 byte da passare allo strato atm.
Al contrario, il sar dell’aal
5 suddivide la cs-pdu in blocchi da 48
byte e non aggiunge informazioni,
demandando il riconoscimento dell’ultima cella di una stessa cs-pdu
ad un bit del campo pt presente
nell’header di cella atm. D’altra
parte, la lunghezza della cs-pdu dell’aal 5 è multipla di 48 byte, aggiungendone
un numero appropriato, oltre ai 64 byte di intestazione (ora posta in
coda), in cui ora sono presenti anche 8 bit di informazione da utente ad
utente.
18.2.7
IP su ATM classico
Allo stesso tempo in cui si diffonde l’uso di atm tra gli operatori di tlc,
il tcp/ip emerge come lo
standard comune per l’interconnessione tra elaboratori. Sebbene il tcp/ip si appoggi ad Ethernet in
area locale, per i collegamenti a lunga distanza l’atm
presenta indubbi vantaggi come la disponibilità di banda su richiesta,
la coesistenza con il traffico di tipo diverso, l’elevata efficienza
della commutazione, e la possibilità di raggiungere diverse
destinazioni. Una prima soluzione, subito scartata, fu quella nota come
peer model, in cui i nodi atm
possiedono un indirizzo ip, ed usano i
protocolli di routing ip. Atm
risulta così appaiata alla rete ip,
ma ciò complica la realizzazione dei nodi atm,
ed il metodo non si generalizza per protocolli diversi da ip.
L’alternativa seguita, detta
overlay model,
vede
atm come uno stato di
collegamento su cui opera l’
ip, che si
comporta come se si trovasse su di una
lan.
In particolare, solo i nodi di frontiera tra
ip
ed
atm prendono un doppio indirizzo,
ed individuano una
Logical Subnet (
lis)
definita da uno stesso prefisso
ip ed
una stessa maschera di sottorete. Con riferimento alla figura che segue,
quando il router di partenza vuole contattare il nodo di destinazione,
trova (1) prima l’
ip del router di
destinazione, e quindi invia una richiesta
arp
al server
atmarp presente nella
lis,
che risponde comunicando l’indirizzo
γ,
il quale è così risolto (2). A questo punto si può instaurare una
vcc con
B
mediante la segnalazione
atm (3), ed
effettuare la comunicazione (4). Una tale soluzione è nota come
vc multiplexing, ed i dati sono
incapsulati direttamente
nella
cpcs-pdu di
aal5.
In ricezione, l’etichetta
vpi/vci è
usata per consegnare il pacchetto al protocollo di strato superiore che
ha realizzato la connessione
atm.
D’altra parte, questa elaborazione deve avvenire a
diretto contatto
con
aal5, e ciò preclude la
possibilità di interlavoro con nodi esterni alla rete
atm.
Nel caso in cui sia antieconomico creare un gran
numero di vc, o se si dispone
unicamente di un pvc,
il pacchetto ip viene incapsulato in
un header llc ieee 802.2 prima di
essere consegnato all’aal5. In tal
modo, il router ricevente esamina
l’header llc del pacchetto ricevuto
dal nodo atm di egress, per
consegnare il pacchetto al protocollo appropriato, realizzando così un trasporto
multiprotocollo su atm.
18.2.8
LANE, NHRP e MPOA
Discutiamo qui brevemente ulteriori possibilità
di utilizzo di atm come trasporto ip, ma a cui verosimilmente sarà preferito
l’mpls.
Mentre l’approccio classico aggiunge un substrato
tra ip ed aal5,
per così dire esterno alla rete atm,
l’approccio lane (lan
Emulation) ne aggiunge uno esterno alla rete ip,
che crede di avere a che fare con una lan
ethernet. In questo caso anziché una lis,
si definisce una Emulated lan
(elan), il cui esatto funzionamento
prevede diversi passaggi.
Sia nel caso classico che in quello
lane,
se due router
ip sono su due
lan
(
lis o
elan)
differenti (con prefissi differenti) la comunicazione tra i due deve
necessariamente attraversare un terzo router
ip,
anche se esiste un collegamento diretto tra i primi due, tutto interno
alla rete
atm. La situazione è
illustrata nella figura seguente, per il caso classico. Come possiamo
notare, i router di partenza e di destinazione potrebbero dialogare
direttamente tramite la rete
atm,
diminuendo il carico di traffico della stessa, e risparmiando al router
intermedio il compito di riassemblare e disassemblare i pacchetti
ip in transito, oltre a riclassificarli ai
fini del routing. Se
i server
atmarp delle due
lis
possono scambiarsi le proprie informazioni, il router di partenza può
arrivare a conoscere l’indirizzo
atm
di quello di destinazione, e creare un collegamento diretto. Lo scambio
delle corrispondenze
<ind. ip;
ind. atm> avviene per mezzo
del
Segue Hop Resolution Protocol (
nhrp)
tra entità indicate come
nhrp
Server (
nhs), che possono
appartenere ognuno a più
lis, e che
instaurano tra di loro un meccanismo di
passa-parola,
per rispondere alle interrogazioni che ricevono. L’applicazione di un
meccanismo in parte simile, porta nel caso delle
elan
alla definizione del
Multi Protocol over ATM (
mpoa).
Il Multi Protocol Label Switching (mpls) è un metodo di realizzare una
trasmissione a circuito virtuale su reti ip,
la cui architettura è descritta nella rfc
3031 dell’ietf, e che verrà esposto
meglio in una prossima edizione. Qui illustriamo i legami che mpls
presenta con atm.
Lo sviluppo di mpls
ha origine dalle iniziative industriali tese a realizzare router
internet economici di prestazioni elevate, e capaci di gestire la banda
in modo appropriato. Lo ietf ha
ricevuto il compito di armonizzare in una architettura standardizzata i
diversi approcci, basati sul principio di inoltrare i pacchetti in base
ad una etichetta (label) impostata dal
primo router della rete, proprio come avviene in atm.
Dato che erano già disponibili i dispositivi hardware per realizzare i
nodi di switching atm, i primi
prototipi hanno semplicemente utilizzato tali switch sotto il diretto
controllo di un router IP, collegato ad altri simili tramite la rete atm. L’mpls
è tuttavia più generale, sia verso l’alto (è multiprotocollo in
quanto si applica oltre che ad ip, a
qualunque altro strato di rete) che verso il basso (funziona
indifferentemente dall’implementazione dello strato di collegamento, sia
atm, ethernet od altro).
La label apposta dal primo mpls
Router (lsr) dipende dalla
destinazione ip del pacchetto; diverse
destinazioni possono coincidere con una sola Forwarding Equivalence
Class (fec),
identificata da una singola label. Tutti i pacchetti di una
stessa fec sono inoltrati verso il
medesimo next hop, indicato dalla tabella di routing,
indicizzata dalla label. Nella stessa tabella,
si trova anche la nuova label da assegnare al pacchetto, prima
di consegnarlo all’lsr seguente. In
tutti i lsr successivi, il pacchetto
non è riclassificato, ma solo inoltrato verso il next hop con
una nuova label come ordinato dalla tabella di routing.
Pertanto, è il primo lsr a decidere
tutto il tragitto, ed i pacchetti di una stessa fec
seguono tutti lo stesso Label Switched Path (lsp).
In tal modo, gli switch possono essere più semplici, si possono
stabilire instradamenti diversi per una stessa destinazione in base al punto di ingresso, così come le fec posso essere rese dipendenti non solo
dalla destinazione, ma anche da altri parametri, come la classe di
servizio richiesta.
L’associazione tra label e fec
(ossia il next hop per i pacchetti con quella label) è
stabilita dal lsr di destinazione, e cioè un lsr
indica agli lsr dai quali si
aspetta di ricevere traffico, quale label usare in
corrispondenza delle fec per le quali
conosce l’instradamento. Dato che la conoscenza di un istradamento è
anche il prerequisito sulla cui base sono annunciate le informazioni di
routing hop-by-hop in internet, il Label Distribution
Protocol (ldp) può essere
vantaggiosamente associato ai protocolli di distribuzione delle
informazioni di routing già esistenti (es. bgp).
Le associazioni tra fec e label
si propagano dunque fino ai nodi di ingresso, realizzando un reticolo di
“alberi” di lsp, costituiti dagli lsp definiti da una stessa fec,
e che convergono verso uno stesso egress a partire da diversi ingress.
Nel nodo in cui più lsp si riuniscono,
è possibile effettuare il label merging assegnando la stessa label
ai pacchetti uscenti, riducendo così la dimensione delle tabelle di
routing.
L’etichetta label su cui si basa l’mpls
può genericamente consistere in un incapsulamento della pdu
dello strato di rete, prima che questa sia passata allo strato di
collegamento. Quando i lsr sono
realizzati mediante switch atm, la label
è efficacemente realizzata usando la coppia vpi/vci,
realizzando i lsp come delle vcc.
In questo caso però, sorgono problemi nel caso in cui si debba
effettuare il merge di più lsp
relative ad una stessa fec, che
passano da uno stesso atm-lsr.
Infatti, se un nodo adottasse in uscita una stessa label-vcc
per differenti vcc entranti, le celle
in cui sono segmentati i pacchetti ip,
ed ora con uguale label-vcc, si
alternerebbero, rendendo impossibile il riassemblaggio dei pacchetti.
Per questo motivo, mpls può operare
anche con lsr che non permettono il merging,
e che possono quindi essere utilizzati assieme ad altri che ne sono
capaci; in tal caso, l’lsr non-merging
non è notificato automaticamente delle associazioni fec-label,
ma gli viene comunicata una (diversa) label ogni volta che ne chiede una
(da associare ad una fec), usando così
più label del necessario. Una alternativa, è quella di
codificare la fec mediante il solo vpi, ed usare il vci
per indicare il nodo di partenza. In questo modo, il merging è
per così dire automatico, senza problemi di alternanza temporale
delle celle di diversi pacchetti ip,
ed il metodo può essere applicato se è possibile coordinare
l’assegnazione dei vci tra sorgenti
diverse, e se il numero delle label non oltrepassa la capacità
di indirizzamento.
L’esposizione svolta è volutamente semplificata, e
trascura per comodità alcune importanti caratteristiche di mpls.