ATM

Sommaire :

Généralités
La couche ATM
La couche AAL
Qualité de service et Contrôle de Congestion
Intégration de réseaux existants

 

Généralités

Pourquoi une nouvelle technologie ? Les besoins en hauts débits nécessités pour le transport de l'information multimédia nous l'impose :

Il s'agit donc de proposer un type de réseau permettant une large bande passante. Ce réseau est appelé RNIS-LB (Réseau Numérique à Intégration de Service Large Bande). On peut considérer ATM (Asynchronous Transfer Mode) comme un composant de ce réseau. 

Quelques explications sur l'emploi du mot "asynchrone" sont nécessaires. Il est relatif au type de multiplexage employé. Le Mode Synchrone (STM) est bien connu pour le transport de la voix numérisée (à 64 Kbits/s). La trame MIC employée est un multiplex périodique divisé en intervalles de temps (32 en Europe) ; chaque intervalle de temps (IT) peut transporter un octet de voix numérisée. Un même IT revient donc périodiquement toutes les 125 microsecondes. Lors de l'établissement d'une liaison, un IT (toujours le même) est affectée à une voie entrante :

Le dispositif est simple mais peut être gaspilleur de bande passante. En effet, les IT non remplis sont "perdus". Le Mode Asynchrone (ATM) vise, au contraire, à utiliser au mieux la bande passante. L'information est structurée en blocs de longueur fixe appelées cellules ; les cellules peuvent arriver de manière irrégulière sur les voies entrantes. Elles sont placées les unes derrière les autres sur la voie multiplexée :

Chaque cellule comporte une en-tête indiquant sa destination.

La petitesse et la taille fixe des cellules ATM permettent un multiplexage performant et l'utilisation de dispositifs hardware plutôt que software, d'où un gain de rapidité permettant d'atteindre les débits ci-dessus.

Les cellules ATM sont de 53 octets comprenant une en-tête de 5 octets et une partie "données" de 48 octets. Ce nombre bizarre provient d'un compromis entre Américains (souhaitant 64 octets) et Européens (souhaitant 32 octets).

La technologie ATM est basée sur une bonne qualité des supports de transmission (fibre optique) et des équipements permettant d'éviter

On retrouve ici quelques caractéristiques du relais de trames.

ATM est orienté connexion : établissement d'une voie de communication basée sur la notion de circuits virtuels. Une amélioration de cette technique, notamment pour le routage, repose sur la notion de groupement de circuits virtuels. Les chemins virtuels (VCC = Virtual Channel Connection) font partie de faisceaux appelés conduits virtuels (VPC = Virtual PAth Connection)) qu'il est possible de router globalement.

Du point de vue du modèle en couche, ATM se définit suivant le schéma ci-dessous :

Comme usuellement, la couche Physique traite des supports de transmission et de l'encodage des données et ne fait pas partie, stricto sensu, de la technologie ATM

ATM se réfère aux couches AAL et ATM

AAL (ATM Adaptation Layer) est une couche d'adaptation aux protocoles des couches supérieures tandis que ATM est une couche définissant la transmission des données dans les cellules et l'utilisation des connexions logiques.

En outre ATM distingue 3 plans :

La correspondance avec le modèle "standard" OSI n'est pas évidente. une tentative de correspondance est donnée ci-dessous :

Depuis les premiers travaux su ATM dans les années 80, un effort de normalisation a été effectué. Toutes les recommandations sont rassemblées dans la série I de l'UIT. Un groupe particulièrement actif, l'ATM Forum, rassemble près de 500 membres qui proposent des spécifications.

La couche ATM

La couche ATM est chargée des 3 fonctions principales suivantes :

A- Circuits virtuels et conduits virtuels

Un conduit virtuel (VPC = Virtual Path Connection) est un faisceau de circuits virtuels (VCC = Virtual Channel Connection). Par rapport au relais de trames, c'est ici une nouveauté qui permet

Chaque VPC et chaque VCC possède un numéro (VPI et VCI) :

Sur la figure ci-dessus, on constate que le conduit VP2 est commuté au conduit VP5. Les circuits VC1, VC2, VC3 qu'ils contiennent sont donc automatiquement commutés. Ce type de commutation est effectué par un brasseur. La table de commutation est réduite puisqu'elle ne contient que les numéros de VPI.

Par contre les circuits VC1, VC2, VC3 du consuit VP1 sont commutés vers respectivement VP3/VC1, VP3/VC2, VP4/VC1. Les tables de commutation doivent donc comporter les deux numéros (conduit et circuit).

D'une manière usuelle, le coeur d'un réseau ATM ne contient que des noeuds de commutation de type brasseur : ce sont des faisceaux de circuits virtuels qui sont commutés. Cette situation simplifie considérablement la commutation de circuit (tables moins volumineuses, donc temps de commutation plus court). Cette partie du réseau est appelée réseau brassé. La commutation de circuits virtuels n'a lieu généralement que sur le réseau périphérique (réseau commuté) ; les tables de commutation sont ici plus complexes.

exemple :

où les rectangles figurent des brasseurs et les disques des commutateurs simples. Les tables de routage sont :

Dans ATM, (comme dans X25), il faut construire de bout en bout des routes pour l'acheminement des cellules avant d'effectuer le transport d'informations. Il y a 4 types de flux de "signalisation" à considérer :

 

B - La cellule ATM

Comme déjà signalé, la cellule ATM comporte 53 octets : 5 octets d'en-tête et 48 octets de données :

L'en-tête comprend les champs suivants :
  • identificateur VPC  : numéro VPI de conduit virtuel. S'il s'agit d'une cellule reliant deux commutateurs ATM (interface NNI : Network-Network Interface), le champ est de 12 bits (il peut donc y avoir 4096 conduit virtuel distincts). S'il s'agit d'une cellule reliant l'usager au réseau ATM (interface UNI : User-Network Interface), les quatre premiers bits sont réservés au champ GFC (Generic Flow Control) qui, comme son nom l'indique, est utilisé pour le contrôle de flux et le numéro VPI prend les 8 bits suivants (dans ce cas il y a au maximum 256 conduits virtuels).
  • identificateur VCC (16 bits) : numéro VCI de circuit virtuel (il peut donc y en avoir 65536).
  • PT : Payload Type  (3 bits) : ce code indique le type d'information transportée par la cellule (voir ci-dessous)
  • CLP (Cell-Loss Priority) : bit utilisé en contrôle de congestion (voir plus loin).
  • HEC (Header Error Control) (8 bits) : est un champ correcteur/détecteur d'erreur calculé à partir du polynôme générateur z8 + z2 + z + 1 ; la détection/correction d'erreur ne porte que sur les 32 premiers bits de l'en-tête. La correction ne porte que sur les erreurs simples.

La taille de la cellule est choisie petite pour deux raisons principales :

Le champ PT indique sur 3 bits le type de cellules, en particulier s'il s'agit d'une cellule utilisateur ou d'une cellule de gestion :

champ PT type de cellule
000 cellule utilisateur, pas de congestion
001 cellule utilisateur, pas de congestion
010 cellule utilisateur, congestion
011 cellule utilisateur, congestion
100 cellule de gestion F5-OAM
101 cellule de gestion F5-OAM
110 cellule FRM
111 réservé

Le bit CLP affecte une priorité qui peut être utilisée en cas de congestion : les cellules avec CLP=1 peuvent être rejetées par un commutateur engorgé tandis que les cellules avec CLP=0 doivent être transmises.

Il est à noter que le contrôle d'erreur (sur l'en-tête) ne s'effectue pas au niveau de la couche ATM mais de la couche physique. Il s'effectue de la manière suivante, sachant que deux états sont à considérer : l'état "correction" et l'état "erreur".  Rappelons que HEC ne permet que la correction des erreurs simples. Si la cellule arrivant est dans l'état "correction" et si la cellule est correcte, alors la cellule est transmise à la couche ATM et l'état reste "correction" ; si au contraire, la cellule est entachée d'une erreur simple, la cellule est corrigée et transmise à la couche ATM mais on passe à l'état "erreur" : si une nouvelle cellule arrive avec une erreur, elle est rejetée. Supposons que l'état soit "correction" et qu'une cellule arrive avec une erreur multiple : la cellule est rejetée et l'état devient "erreur". En résumé, dans l'état "erreur", une nouvelle erreur provoque le rejet de la cellule, sinon, si la cellule est correcte, l'état redevient "correction".


Dans le cas d'une cellule passée par la couche ATM à la couche physique, le HEC est calculé. On notera que le calcul doit être refait au passage à chaque commutateur puisque les numéros VPI,VCI changent.

 

La couche AAL

Selon la recommandation I362, la couche AAL (ATM Adaptation Layer) possède les fonctionnalités suivantes :

 

A - Classes d'applications

4 classes d'applications ont été définies par l'UIT :

Ces quatre classes sont caractérisées par les paramètres suivants : la synchronisation entre l'émetteur et le récepteur, le mode temps réel ou temps différé, la constance ou la variabilité du débit, le mode connecté ou non connecté :

classe A B C D
synchronisation oui non
temps réel différé
débit constant variable
mode connecté non connecté

Au départ, 4 protocoles AAL1, AAL2, AAL3, AAL4 avaient été prévus pour chacune des classes. Aujourd'hui, la situation est un peu plus confuse et en fait, AAL3 et AAL4 ont fusionné en AAL3/4 tandis qu'un cinquième protocole a fait son apparition, AAL5. La correspondance entre les classes d'applications et les protocoles est maintenant plutôt celle-ci :

classe A B C D
protocole AAL1 AAL2 AAL3/4, AAL5 AAL5

 

B - CS-PDU, SAR-PDU et cellule ATM

Rappelons que la couche AAL est décomposée en deux sous-couches :

 

C - Protocoles AAL

Protocole AAL1

Il est adapté à la classe A : temps réel, débit constant, synchronisation, mode connecté ce qui est le cas, par exemple e la voix ou de la vidéo sans compression. Les pertes de données sont signalées sans plus.

Alors que la CS-PDU ne possède pas de protocole particulier, la SAR-PDU possède une en-tête. Les SAR-PDU "P" ont le premier bit à 1 et possèdent un champ pointeur qui indique la position du message suivant. Les SAR-PDU "non P" ont le premier bit à 0 et ne possèdent pas de champ pointeur. Le champ SN correspond à un numéro de séquence (ce qui permet de détecter les cellules manquantes) ; SNP est un champ de contrôle sur le numéro de séquence  (auto-correction des erreurs simples). P est un bit de parité (encore un contrôle d'erreur sur le numéro de séquence). La longueur total de la SAR-PDU est de 48 octets.

 

Protocole AAL2

Ce protocole est adapté aux flux audio et vidéo avec compression et débit variable. La CS-PDU n'a pas de structure particulière. La SAR-PDU possède une en-tête et une en-queue.

Comme précédemment, SN est le numéro de séquence ; le champ IT indique si l'on est au début, au milieu ou en fin de message ; LI indique la taille de la charge utile (inférieure ou égale à 45 octets) ; CRC est un champ détecteur d'erreur sur l'ensemble de la SAR-PDU.

 

Protocole AAL3/4

Ce protocole correspond à un transport de données sous forme de messages qui peuvent être multiplexés sur le même circuit virtuel. La couche CS possède un protocole propre :

CPI indique le type de message ; Btag et Etag signalent le début et la fin d'un message ; Length et B size indiquent la taille de la charge utile et du tampon à attribuer au message. Des octets de bourrage sont prévus pour faire en sorte que le nombre d'octets au total soit un multiple de 4.

Le champ ST indique si on est au début (10), à la fin (01), au milieu (00) d'un message ou si le message tient dans une seule cellule (11). Le champ SN est un numéro de séquence. Le champ MId indique à quelle session se rapporte le message (multiplexage) ; LI donne la taille de la charge utile (inférieur ou égal à 44 octets) ; CRC est un champ détecteur d'erreurs.

 

Protocole AAL5

Le protocole AAL3/4 étant relativement compliqué, une proposition de simplification fut faite sous le nom de SEAL (Simple Efficient Adaptation Layer !) qui devint AAL5.

La couche CS possède un protocole visant à ajouter un en-queue à un message. La longueur totale doit être un multiple de 48 octets (on est amené à rajouter dans la charge utile des caractères de bourrage).

UU n'est pas utilisé, Length indique la longueur de la charge utile (caractères de bourrage non compris) ; CRC est un champ détecteur d'erreur.

Le passage à la couche SAR s'effectue de manière très simple : CS-PDU est découpée en blocs de 48 octets qui constituent les SAR-PDU.

Qualité de service et contrôle de congestion

Un réseau comme ATM se doit de rendre le "service" demandé. Par exemple, si le réseau délivre du temps réel, il ne faut pas qu'il y ait de retard qui impliquerait la perte de cellules. Par suite, avant d'établir une connexion sur un circuit virtuel, une négociation de contrat doit avoir lieu pour préciser les conditions du trafic. Ce contrat peut spécifier des critères différents suivant le sens de transmission. La négociation porte sur un certain nombre de paramètres définissant la qualité de service :

paramètres définition
PCR (Peak Cell Rate) valeur maximum du débit
SCR (Sustained Cell Rate) valeur moyenne du débit envisagé
MCR (Minimum Cell Rate) débit minimum vital
CVDT (Cell Variation Delay Tolerance) variation maximale du délai de transmission des cellules
CLR (Cell Loss Ratio) taux de perte des cellules
CTD (Cell Transfer Delay) temps moyen d'acheminement d'une cellule
CDV (Cell Delay Variation) variation admissible du temps d'acheminement des cellules
CER (Cell Error Ratio) taux de cellules erronées
SECBR (Severely Errored Cell Block Ratio) taux de blocs de cellules contenant des erreurs
CMR (Cell Misinsertion Rate) Taux de cellules mal adressées

Un des mécanismes de contrôle de la qualité de service est basé sur l'algorithme Generic Cell Rate Algorithm (GCRA), qui est une version de l'algorithme bien connu, dit du "seau percé". Cet algorithme est assez proche de celui utilisé dans le relais de trames.

Imaginons que le contrat porte sur un débit D0 = PCR = 125 000 cellules/s. Le temps écoulé entre deux envois successifs de cellules est donc T = 1/D0. Une cellule ne doit donc pas arriver en un temps plus court que T après la réception de la cellule précédente. Elle peut par contre arriver dans un intervalle de temps plus grand que T. Une cellule qui se conforme à cette règle est "conforme". Si la cellule 1 arrive au temps 0 et si la cellule 2 arrive au temps t1 > T, la cellule 3 devra arriver au plus tôt au temps t1+T.

Bien entendu, il se pose un problème lorsque l'émetteur "triche" en accentuant sa cadence : les cellules deviennent alors non conformes au contrat. On peut toutefois accepter une tolérance de h microsecondes (qui correspond au paramètre CVDT). On pourra considérer que la cellule est encore conforme si elle arrive au temps T-h après la cellule précédente. Mais il faudra que la cellule suivante arrive au plus tôt au temps 2T.

Imaginons maintenant que l'émetteur trop rapide conserve sa cadence d'envoi. Les cellules suivantes vont s'enfoncer dans la zone de tolérance et au bout d'un moment avoir une date d'arrivée dans la zone stricte de non conformité. La cellule 2 va arriver e trop tôt, la cellule 3 va arriver 2e trop tôt, la cellule 4 va arriver 3e trop tôt, etc... Le schéma ci-dessous montre une telle situation avec h = 4e. Il est clair que la cellule 6 est en totale "effraction". Elle pourra être détruite par les composants réseau.

Le bas du schéma précédent explique pourquoi l'algorithme est qualifié de "seau percé". La cellule est considérée comme un récipient apportant une quantité T litres de liquide. A l'arrivée, ce liquide est intégralement versé dans un seau de capacité T+h litres qui possède un trou et fuit à la cadence de T litres/seconde. Si les cellules respectent le contrat, elles trouveront toujours le seau vide. Si au contraire, elles arrivent en avance, elles trouveront un seau non vide ; le niveau de liquide du seau s'élèvera donc à chaque arrivée d'une cellule jusqu'au moment où le seau débordera.

On voit que temporairement, on peut dépasser le débit maximum, mais que seulement N cellules seront acceptées. Le calcul de N est assez simple si l'on se base sur le tableau ci-dessous :

cellule date d'arrivée au plus tôt date réelle d'arrivée
1 0 0
2 T T-e
3 2T 2(T-e)
4 3T 3(T-e)
--- --- ---
N (N-1)T (N-1)(T-e)

Pour la dernière cellule N, on aura atteint la limite de tolérance, ce qui correspond à la date (N-1)T-h, donc (N-1)(T-e) = (N-1)T - h, d'où la valeur de N :

e mesure l'intervalle de temps d'avance à chaque arrivée de cellules. Si le débit souscrit est D0 et si le débit réel est D > D0 (les débits étant mesurés en cellules par seconde), le temps d'arrivée au plus tôt de la cellule 2 est T = 1/D0 et son temps d'arrivée réel est T' = 1/D, d'où

exemple : Supposons que le débit souscrit est D0 = 125 000 cellules/s d'où  T = 8 ms. Imaginons que le récepteur envoie des cellules au débit D = 200 000 cellules/s. Sachant que la tolérance est h = 24 ms, combien de cellules pourront être acceptées ?

La valeur de e est T - T' = 8 - 5 = 3 ms ; on en déduit N = 9 cellules.

La méthode précédente permet de canaliser le trafic, mais ne peut éviter la congestion d'un commutateur ATM. Il faut d'ailleurs distinguer entre la congestion due à des arrivées nombreuses en rafales de cellules pendant un temps court et la congestion due à un trafic moyen, donc calculé sur une longue période, supérieur aux possibilités du réseau.

Les stratégies de contrôle de congestion principalement utilisées sont les suivantes :

-- stratégie de prévention : comme il n'est généralement pas possible de réduire le débit des émetteurs sans dénaturer l'information transmise (notamment en temps réel), il est par contre possible d'interdire l'accès au réseau si on se rend compte d'un danger de congestion par admission d'une nouvelle transmission. Ceci intervient lorsque aucune possibilité d'admission n'est trouvée sans affecter les connexions existantes.

-- stratégie de réservation : lorsqu'une nouvelle connexion est prévue, les ressources nécessaires à cette nouvelle connexion sont réservées ; ceci s'effectue au moyen d'un message spécial SETUP dont l'objet est de mobiliser, si possible, les ressources (bande passante) nécessaires.

-- stratégie basée sur la bande passante : trois modes sont définis :

Intégration des réseaux existants

Nous examinons dans ce paragraphe l'interconnexion de réseaux existants avec ATM, notamment

Plusieurs solutions sont proposés. Nous en faisons une courte revue.

Classical IP (CLIP)

Cette solution est issue des travaux du groupe de travail IPOA (IP Over ATM).  Le protocole CLIP considère un ensemble de noeuds d'un réseau ATM comme un sous-réseau IP (ce qui implique évidemment que ces noeuds possèdent la pile TCP/IP et des adresses IP). Un tel sous-réseau est appelé LIS (Logical IP Subnet).

CLIP définit deux fonctionnalités :

La résolution d'adresse est relativement analogue à celle que l'on emploie au passage de la couche IP à une couche MAC d'un LAN ; dans ce cas le protocole ARP/RARP. Dans le cas de CLIP on emploie ATMARP et InATMARP (Inverse ATMARP). Un serveur ATMARP est nécessaire : il maintient les tables de conversion adresse ATM-adresse IP. L'adresse du serveur ATMARP est connue de toute station connectée au réseau (configuration à l'installation).

Lorsqu'une station configurée (adresse IP, adresse ATM, connaissance de l'adresse du serveur ATMARP) se connecte pour la première fois, elle se met en communication avec le serveur ATMARP par l'intermédiaire d'un circuit virtuel. Le serveur ATMARP demande à la station son adresse IP et met à jour sa table de conversion des adresses.

Si cette station veut communiquer avec un serveur, par exemple,  du réseau, elle doit connaître son adresse ATM connaissant son adresse IP. Pour cela elle s'adresse à nouveau au serveur ATMARP qui lui fournit l'adresse ATM du serveur. La station enregistre cette information dans une table (ce qui évite d'avoir à recontacter le serveur ATMARP en cas d'une nouvelle connexion avec le serveur). Par suite un circuit virtuel est établi entre la station et le serveur.

En ce qui concerne l'encapsulation des paquets IP, ceux-ci sont incorporés dans une PDU de type AAL5 avec un champ indiquant le type de protocole encapsulé (ici IP, mais on peut imaginer le procédé pour d'autres protocoles). La PDU est ensuite divisée en cellules ATM.

LAN Emulation (LANE)

Il s'agit ici de considérer un réseau ATM comme un réseau LAN classique (Ethernet ou Token Ring) :

Un LAN émulé s'appelle un ELAN (Emulated LAN) ; c'est un réseau virtuel de type Ethernet ou Token Ring. Il possède les propriétés des LAN réels : adresses MAC, broadcast, multicast et aussi des propriétés spécifiques : par exemple, pas de collision dans le cas d'un ELAN Ethernet. Les stations reliés à l'ELAN sont des LEC (Lan Emulation Client) et il doit exister deux serveurs (éventuellement confondus) : le LES (Lan Emulation Server) et le BUS (Broadcast Unknown Server). Lorsque plusieurs ELAN existent sur un même réseau ATM, un serveur LECS (Lan Emulation Configuration Server) est nécessaire.

Le serveur LECS contient les adresses ATM des LES des différents ELAN su réseau ATM. Le LES gère la table de conversion des adresses ATM et MAC. Le BUS est un serveur de multidiffusion (multicast). Examinons le fonctionnement du protocole LANE.

Imaginons qu'une station LEC A veuille communiquer avec une autre station LEC B. La station A commence par se connecter (par circuit virtuel) au LECS (possédant par exemple une adresse ATM réservée) pour obtenir l'adresse ATM du LES de l'ELAN concerné. La station A se connecte alors au LES (par un circuit virtuel appelé Control Direct VCC) qui met à jour sa table de conversion d'adresses ATM - MAC. La station A demande et obtient du LES l'adresse ATM de la station B. Il est alors simple pour la station A de se connecter via un circuit virtuel à la station B.

Imaginons maintenant que la station LEC A souhaite envoyer un message multicast. Pour cela, elle contacte le LES pour obtenir l'adresse ATM du serveur BUS. L'ayant obtenue elle se connecte au BUS qui se charge de la diffusion multicast du message.

Multi-Protocol Over ATM (MPOA)

MPOA est une solution pour utiliser ATM sous divers protocoles (en fait actuellement seulement sous IP) et d'exploiter les classes de service correspondantes.  Dans le protocole LANE, un réseau ATM peut être constitué de plusieurs ELAN. Le passage d'un ELAN à un autre nécessite une routeur ce qui signifie une décapsulation suivie d'une encapsulation au passage sur le routeur d'où une perte de temps faisant perdre le bénéfice du réseau ATM.

MPOA remplace les routeurs par des serveurs MPOA et vise à effectuer une liaison directe entre les stations à connecter. Ceci signifie qu'au lieu de faire des passages couche 2 - couche 3 - couche 2, on effectue une connexion de bout en bout en couche 3. Le fonctionnement est le suivant. Le routeur et les clients sont dotés du logiciel adéquat du protocole MPOA.

1) phase d'appel : le client LEC A s'adresse au routeur (qui est serveur MPOA) pour obtenir l'adresse ATM du destinataire LEC B. Le serveur MPOA possède des tables de conversion. Si l'adresse n'est pas trouvée, il s'adresse au serveur MPOA suivant (en utilisant un protocole appelé NHRP (Next Hop Routing Protocol). Si l'adresse est trouvée, il établit un circuit virtuel entre LEC A et LEC B.

2) phase de transfert : le transfert de données se fait directement via le réseau ATM entre LEC A et LEC B. Bien etendu, les paquets IP sont encapsulés et découpés en cellules (le protocole correspondant s'appelle VC Based Multiplexing).