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.
23.2.1 Architettura ATM
La rete ATM viene anche definita 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
23.1 riporta le principali funzioni svolte dai tre strati, e pone in evidenza come in uno stesso strato siano identificabili diverse sotto-funzioni.
Table 23.1 Stratificazione delle funzioni in una rete ATM
23.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.
23.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
- Peak Cell Rate (pcr) 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)
- Cell Tansfer Delay (ctd) 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, tentando di non scartare 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.
23.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.
23.2.6 Strato di adattamento
Come mostrato in tab.
23.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.
23.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, ed è 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.
23.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.
23.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
Next 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.