Asynchronous Transfert Mode - ATM.
Première partie : Caractéristiques générales ATM : transmission convergence.

1. Présentation générale.

1.1 Introduction.

Cette technique de transfert "haut débit" (supérieur à 2Mbit/s) évite la prolifération des réseaux spécialisés à quelques applications. L'ATM est à caractère universel et combine à la fois la simplicité de la commutation de circuits ainsi que la flexibilité de la commutation par paquets. C'est une méthode de communication à commutation de circuit, cela signifie que la connexion au travers du réseau doit être établie avant que l'information soit transférée. La connexion est dite virtuelle, car n'existant pas physiquement mais elle est présente sous forme de tables de routage à l'intérieur des commutateurs.

La structure générale utilise une cellule de 53 octets, dont 5 servent d'en-tête et 48 de charge. La charge pouvant être de type donnée, images, vidéo, voix... ou constituée de cellules spécifiques : signalisation ou maintenance, des cellules non affectées, des cellules test...

Le canal virtuel (VCI) est assigné par le commutateur ; lorsque la connexion (le transfert) est terminée, le VCI est à nouveau mis à disposition par le commutateur pour une nouvelle utilisation. La valeur du VPI indique un chemin virtuel qui permet de spécifier des canaux pouvant être accolés ensemble. Cette technique de commutation de cellules permet donc une adaptation aux variations de débits ainsi que l'acheminement de n'importe quel type de services. La taille réduite des cellules permet un fonctionnement isochrone (dont le temps de propagation de bout en bout est identique pour toutes les cellules). En résumer, ATM allie donc les avantages de la commutation de circuits (temps de transfert) avec les avantages de la commutation de paquet (adaptation aux débits variables, optimisation de la bande passante). Mais ceci est fait au détriment d'une complexité accrue.

ATM a échoué à être largement répandu en tant que technologie LAN et sa grande complexité a été un obstacle à son développement en tant que technologie réseau intégrative comme ses inventeurs l'avaient imaginé... La plupart des bonnes idées d'ATM ont migré dans MPLS, un protocole de niveau 2 de commutation de paquets (packet switching). ATM reste utile et largement déployé comme couche de multiplexage dans les réseaux xDSL, où ses compromis correspondent bien aux besoins de cette application.

1.2 Le modèle ATM.


       +--------------------------------------+
      /        Plan de gestion               /|
     /                                      / |
    /  Plan de controle     Plan Usager    /  |
   +--------------------------------------+   |
   |                                      |  /|
   |  Protocoles et fonctions supérieurs  | / |
   |                                      |/  |
   +--------------------------------------+   |
   |                                      |  /|
   |    Couche d'adaptation ATM (AAL)     | / |
   |                                      |/  |
   +--------------------------------------+   |
   |                                      |  /|
   |      Couche ATM (cell header)        | / |
   |                                      |/  |
   +--------------------------------------+   |
   |                                      |  /
   | Couche physique (SDH, SONET, PDH...) | /
   |                                      |/
   +--------------------------------------+

La couche physique est la plus basse et permet le transport des éléments binaires sur un support physique. Les solutions les plus couramment employées consistent à utiliser un réseau SONET ou SDH ; un transfert direct des cellules sur le support physique, sans structure de synchronisation (trame), est toutefois possible pour de petites distances (réseau local). Lorsque les cellules ATM sont transportées sur un débit électrique pdh (E1, E3, DS3..), une trame spécifique PLCP (PLCP DS3 frame) est crée ; cette trame permet de transporter 12 cellules ATM, chacune précédée des octets d'en-tête de la trame PLCP : trame PLCP DS3. D'autres structures de trame sont possibles, quoi qu'il en soit, la structure ATM reste toujours la même.

La couche d'adaptation AAL (ATM Adaptation Layer) permet d'adapter les données utilisateurs au format du champs de la cellule. Selon les caractéristiques désirées (contraintes de temps, débit variable...) différentes structures d'adaptation existent. La partie Segmentation et ré-assemblage (SAR) permet le découpage du message à envoyer en paquet de 48 octets qui seront insérés dans les cellules ; coté réception un ré-assemblage des paquets de 48 octets est effectué afin de reconstruire le message d'origine. La partie Convergence Sublayer (CS) dépend du service qui doit être rendu à l'utilisateur et fournit des informations spécifiques au support (par exemple d'identifier le type de données ou de re-génération de l'horloge des informations...). Le champs de charge de 48 octets est spécifique, voir les différentes normes I363.i et la page relative à ces principes.

Les cellules d'Opération et de Maintenance (OAM) permettent de superviser le réseau et de déterminer la qualité des connexion. Ces cellules utilisent le chemin classique mais dispose d'une combinaison VCI:VPI particulière. Le champs de charge de 48 octets est spécifique et donne une information sur la qualité du réseau et indique les différents défauts : AIS, RDI... C'est le plan de gestion (Management Plane) qui est chargé d'assurer les opérations de contrôle et de maintenance (gestion des performances, détections des pannes, protection du système information sur les pannes et les performances, localisation des fautes...). Le plan utlisateur (User Plane) permet de faire transiter dans le réseau les informations, mais il prend également en charge les erreurs de transfert et la surveillance du flux émis. Le plan de contrôle (Control Plane) permet l'établissement, la lbération et la surveillance des connexions (ATM étant en mode connecté).

1.3 Principe de l'ATM.

Les cellules sont constituées dans un celluleur qui gère des files d'attente et crée ainsi une indépendance temporelle entre la source et la transmission (d'où le nom de transfert asynchrone). Le multiplexage est effectué à ce niveau, le débit des différentes sources peuvent être variables et indépendants. Des cellules vides sont insérées en l'absence de données source.

     Source A            Source B      ...    Source N
    +--------+          +--------+           +--------+
    |////////|          |\\\\\\\\|           |########|
  --+--------+---+    --+--------+--+      --+--------+--+
                 |                  |                    |
                 v                  v                    v
            |         |        |         |          |         |
            |         |        |\\\\\\\\\|          |         |
            |         |        |\\\\\\\\\|          |         |
            |         |        |\\\\\\\\\|          |#########|   Celluleurs
            |/////////|        |\\\\\\\\\|          |#########|
            |/////////|        |\\\\\\\\\|          |#########|
            +---------+        +---------+          +---------+
                      \             |               /
                       \            |              /
                        \           |             /
                         v          v            v

                         +----+-------------------+
                         | OH |    \\\\\\\\\      |
                         +----+-------------------+
                         | OH |    /////////      |
                         +----+-------------------+    File d'attente
                         | OH |    \\\\\\\\\      |
                         +----+-------------------+
                         | OH |    #########      |
                         +----+-------------------+
                                     |
                                     |   Multiplexage
                                     v
  --+----+-------------------+----+-------------------+----+-------------------+----+-------------
    | OH |    #########      | OH |    \\\\\\\\\      | OH |    ooooooooo      | OH |  \\\\\\\\\
  --+----+-------------------+----+-------------------+----+-------------------+----+-------------
                                                               Cellule vide

Les cellules sont donc entièrement repérées par leur en-tête qui contient un identificateur de voie virtuelle (VCI) et un identificateur de conduit (faisceau ou chemin) virtuel (VPI). '''Le conduit étant un ensemble de voies suivant une même route'''; ces identificateurs permettent aux commutateurs d'assurer le routage des informations.

2 Structure des cellules ATM.

2.1 En-têtes et codage NNI/UNI.

Une cellule ATM est donc constituée de 5 octets d'en-tête et de 48 octets de champ d'information ; soit une longueur totale de 53 octets. Deux schémas de codage différents sont adoptés, en fonction de l'interface considérée: interface utilisateur-réseau (UNI, user-network interface) ou interface de noeud de réseau (NNI, network-node interface). Les champs VPI et VCI sont des identificateurs de conduit et de voie (path and channel); le champs HEC correspond au contrôle d'erreur sur l'en-tête, il permet de se verrouiller sur le train de cellules ATM. (voir ci-dessous). Un champs GFC de 4 bits n'est utilisé que dans le cas d'une structure UNI, sinon ce champs est ré-affecté à la valeur VCI.

Structure des cellules ATM UNI/NNI.

La fonction de routage est obtenue par le couple VPI/VCI ; Sur l'UNI, la longueur totale de la référence VPI+VCI est de 24 bits, ce qui permet jusqu'à 2^24 connexions simultanées. Sur une connexion NNI, ce nombre est porté à 2^28. Pour chaque connexion, la valeur du VCI change le long du conduit emprunté par la cellule. Le conduit VP se compose d'un multiplexage de VC empruntant le même chemin physique. Aux noeuds intermédiaires d'un conduit virtuel, seule la valeur VPI est traitée. Aux noeuds terminaux du conduit indiqué par la valeur VPI, les terminaux destinaires sont déterminés par la valeur du VCI.

2.2 Contrôle d'erreur et cadrage des cellules.

Le calcul du HEC, est un code de contrôle d'erreur (ECC) qui permet à la fois la correction d'erreur de transmission, mais aussi la synchronisation des cellules en réception. Le contrôle d'erreur d'en-tête (HEC, header error control) couvre l'intégralité de l'en-tête de cellule. Le code utilisé pour cette fonction permet :
L'émetteur calcul la valeur HEC pour la totalité des quatre premiers octets de l'en-tête de cellule ATM et insère le résultat dans le champ d'en-tête approprié. Le champ HEC doit être une séquence de 8 bits: il doit être le reste de la division (modulo 2) par le polynôme générateur x^8 + x^2 + x + 1 du produit de x8 par le contenu de l'en-tête à l'exclusion du champ HEC.
Le mode par défaut assure la correction des erreurs sur un bit isolé mais il ne devrait être appliqué que lorsque le mécanisme de cadrage des cellules est à l'état SYNC et, dans le cas d'une couche physique à cellules, lorsque le désembrouilleur est à l'état régime permanent. Pour procéder au cadrage des cellules, on utilise la corrélation entre les bits d'en-tête à protéger (32 bits) et les bits de contrôle pertinents (8 bits) introduits dans l'en-tête par le HEC au moyen d'un code cyclique abrégé ayant le polynôme générateur x8 + x2 + x + 1.

Diagramme d'état du cadrage des cellules.

Pour une couche Physique SDH, on propose les valeurs n = 7 et m = 6.
Pour une couche Physique à cellules, on propose les valeurs n = 7 et m = 8.

Pour améliorer sensiblement la qualité du cadrage des cellules en cas de glissement des bits, il est recommandé de procéder comme suit : les bits de redondances calculés sont ajoutés (modulo 2) à un schéma de 8 bits "0101 0101" (le bit de gauche étant le bit de plus fort poids) avant d'être insérés dans le dernier octet de l'en-tête.

2.3 Embrouilleur et désembrouilleur.

Pour obtenir une bonne qualité de cadrage des cellules, on recommande que les couches Physiques SDH utilisent un embrouilleur autosynchrone ayant pour polynôme x43 + 1. L'embrouilleur rend aléatoire les bits du champ d'information uniquement donc, durant les cinq octets de l'en-tête, le fonctionnement de l'embrouilleur est arrêté.

                                                   Unscrambled Data
                                                          |
                                                          v
             +-------------------------------------+    +---+
          +->|     --> 43 bit shift register -->   |--->|xor|
          |  +-------------------------------------+    +---+
          |                                               |
          +-----------------------------------------------+
                                                          |
                                                          v
                                                    Scrambled Data

   The shift register is initialized once, at the start of operation,
   and may be set to any random 43-bit value.  Each bit of data
   subsequently transmitted is exclusive-or'd with a bit shifted out of
   the high order end of the register, and the result of this operation
   is shifted back into the low order end of the register.  The
   scrambled data which is transmitted is essentially a copy of the
   internal state of the scrambler.


   The corresponding receiver schematic is shown following:

                                                    Scrambled Data
                                                          |
          +-----------------------------------------------+
          |                                               |
          |                                               v
          |  +-------------------------------------+    +---+
          +->|     --> 43 bit shift register -->   |--->|xor|
             +-------------------------------------+    +---+
                                                          |
                                                          v
                                                   Unscrambled Data

   The descrambler essentially operates by exclusive-or'ing each bit of
   incoming scrambled data with the (scrambled) incoming data bit
   received 43 bits previously.  At startup the shift register may be
   initialized with the first 43 bits of data which arrive, after which
   it can begin unscrambling.

2.4 Valeurs des octets d'en-tête.

PTI, GFC et CLP sont des champs spécifiques de la couche physique. Un champ de trois bits de type de contenu, ou '''Payload type (PTI)''' portent les notifications de congestion et permettent aussi l'identification du type de capacité utile. Ils indique si le champ d'information est de type utilisateur ou signalisation... Le tableau suivant décrit le codage de l'identificateur de type de capacité utile :
   0 0 0   Cellule de données d'usager, pas d'encombrement.
           Indication usager ATM vers usager ATM (AUU) = 0
   0 0 1   Cellule de données d'usager, pas d'encombrement.
           Indication usager ATM vers usager ATM (AUU) = 1
   0 1 0   Cellule de données d'usager, encombrement.
           Indication usager ATM vers usager ATM (AUU) = 0
   0 1 1   Cellule de données d'usager, encombrement.
           Indication usager ATM vers usager ATM (AUU) = 1
   1 0 0   Cellule OAM associée F5 (gestion de CV) de segment (locale)
   1 0 1   Cellule OAM associée F5 (gestion de CV) de bout en bout
   1 1 0   Cellule de gestion des ressources
   1 1 1   Réservé pour de futures fonctions de voies virtuelles
Tout élément de réseau encombré, lorsqu'il reçoit une cellule de données d'usager, peut modifier l'identificateur PTI. En fonction de l'état du réseau (congestion) et pour certaines capacités de transfert en mode ATM (voir Recommandation I.371), les cellules dont le bit CLP est mis à 1 peuvent être ignorées avant les cellules dont le bit CLP est mis à 0. En fait, si le bit CLP est marqué (mis à un), la cellule est détruite en cas de congestion du réseau. (priorité sémantique ou destruction sélective). Le bit CLP permet par ailleurs de définir la priorité temporelle des services à forte contraites de temps réel ; cette information est répercutée sur les files d'attente en sortie des commutateurs ATM.

Le champs GFC permet de contrôler le flux de cellules entrant dans le réseau, de les multiplexer et de diminuer les périodes de congestion du réseau de l'utilisateur final. Le champs GFC se donne pour objectif de garantir les performances requises par l'utilisateur, comme la bande passante allouée ou le taux de trafic négocié. Pour les procédures de transmission non contrôlées, le champ GFC est mis à 0000 et ne joue aucun rôle. Sinon, la recommandation I.361 définie le rôle de ce champs ; HALT permet l'arrêt de la transmission, SET_A génère une opération de crédit pour le groupe A ; SET_B une opération de crédit pour le groupe B pour demander la capacité de contrôle GFC pendant un certain temps (T) ou jusqu'à l'établissement de la première connexion...

3. Cellules de maintenance OAM. (I.610)

Les cellules de flux OAM permettent l'exploitation et la maintenance du réseau ; la recommandation I.610 détaille les opérations de contrôle et de maintenance :
Avant toute chose, il est intéressant de se remémorer les différents niveaux de contrôle et gestion utilisés pour transporter les cellules ATM. Parmis les cinq niveaux hiérarchiques, seuls les deux plus hauts concernent la partie ATM. Une des applications typique de la cellule OAM concerne la gestion des alarmes sur réseau ATM (cas des deux niveaux hiérarchiques les plus élevés). Le flot F5 se réfère au niveau de la voie virtuelle. Les cellules OAM du flot F5 sont identifiées par la champ PT qui se trouve dans la zone de supervision.
Le niveau F4 à en charge le contrôle des VPC. Il est identifié par deux valeurs VCI préassignés : VCI=3 pour le flux F4 sur un segment et VCI=4 pour le flux F4 de bout en bout. Les cellules VP-OAM sont détectées par la procédure suivante : Les cellules VC-OAM sont détectées par la procédure suivante (qui n'implique aucun ordre particulier):

Format et type des cellules OAM.

1. '''en-tête''' Ce champ est détaillé dans la Recommandation I.361. Pour l'identification du flux F4, deux identificateurs VCI préassignés permettent de distinguer les cellules OAM des connexions VPC et des segments de connexion VPC. Ces deux valeurs sont définies dans la Recommandation I.361. Pour l'identification du flux F5, deux valeurs d'identificateur PTI sont utilisées pour distinguer les cellules OAM des connexions VCC et des segments de connexion VCC. Voir table ci-dessus.

2. '''type de cellule OAM (4 bits)''' - Ce champ indique le type de fonction de gestion assuré par la cellule, par exemple gestion des défauts, gestion de la qualité et activation/désactivation.

3. '''type de fonction OAM (4 bits)''' - Ce champ indique la fonction réelle assurée par la cellule dans le type de gestion indiqué par le champ de type de la cellule OAM.

4. '''champ réservé à un usage ultérieur (6 bits)''' Un usage possible de ces éléments binaires est l'indication de la version du protocole de gestion OAM. En attendant que le motif de codage de ce champ soit défini, sa valeur par défaut est codée par une suite de zéros.

5. '''code de détection des erreurs (10 bits)''' Ce champ porte un code de détection d'erreur par CRC-10 calculé dans le champ d'information de la cellule OAM mais hors du champ de détection et correction d'erreurs. Ce code doit être le reste de la division (modulo 2), par le polynôme générateur, du produit de x10 et du contenu du champ "information" de la cellule OAM (à savoir le type de cellule OAM, le type de fonction, le champ spécifique de la fonction et le champ réservé, mais à l'exclusion du champ de détection EDC) (soit 374 éléments binaires). Le fait que la redondance ne soit pas une puissance de 2 présente des difficultés (subtilités d'implémentation). Le polynôme générateur du contrôle CRC-10 est le suivant: g(x) = 1 + x + x4 + x5 + x9 + x10

Perte de continuité sur voie virtuelle (VC-LOC) Le défaut VC-LOC doit être déclaré lorsque le récepteur ne reçoit aucune cellule d'utilisateur ou aucune cellule de test de continuité pendant plus de 3,5 ± 0,5 secondes. L'indication VC-LOC doit disparaître dès réception d'une cellule d'utilisateur ou d'une cellule de test de continuité. Lorsque le point puits d'une connexion VPC dont le contrôle de continuité a été activé ne reçoit pas de cellules d'utilisateur ou de cellules CC pendant un intervalle de 3,5 secondes avec une marge de ± 0,5 s, ce point doit déclarer l'état VP AIS en raison d'un défaut de type LOC. Lorsque le point puits d'un segment de connexion VPC ne reçoit pas de cellules d'utilisateur ou de cellules CC pendant un intervalle de 3,5 secondes avec une marge de ± 0,5 secondes, il doit déclarer un défaut de type LOC et doit commencer à émettre vers l'avant des cellules VP-AIS. Au cours d'un défaut LOC, pour éviter une redondance de flux cellulaires e-t-e_VP-AIS, ce point puits de segment ne doit toutefois pas insérer de cellules e-t-e_VP-AIS supplémentaires s'il est déjà en train d'en recevoir et d'en envoyer.

4. Cellules vides.

Les cellules vides ne donnent lieu à aucune action dans le noeud ATM de réception, sauf pour le cadrage de la cellule, et la vérification de la séquence HEC. Elles sont insérées et ignorées pour le découplage du débit de cellules. Les cellules vides sont insérées lors de l'émission de cellules qui n'appartiennent pas à la gestion de trafic. Les cellules vides sont identifiées par le schéma normalisé pour l'en-tête de cellule :

La structure ATM permet d'adapter la bande passante du réseau au besoin de l'utilisateur, citons, pour étayer cette thèse, le très intéressant document [../ATM_Technology/ewtoc.html">ATM Technology §6.1]

Utilisation des cellules vides dans un flux ATM.

"Flexible and reliable bandwidth allocation is one of the key features of ATM. In terms of bandwidth allocation capability, ATM represents a somewhat more rational approach with respect to both ends of the spectrum. At one end of spectrum is the very rigid synchronous SONET/SDH technology. At the other end of the spectrum is shared medium Ethernet technology which allows bandwidth usage with no restriction at all.
SONET/SDH has been initially designed to multiplex voice circuits. The smallest unit of bandwidth allocation possible is at the T1 rate (1.5 Mbps) for SONET and E1 rate (2 Mbps) for SDH. Without any slience suppression, voice samples flow through the SONET/SDH network at a constant rate, i.e., 64 Kbps per voice call. However, when it comes to carrying bursty data traffic, a significant amount of the allocated bandwidth for a particular connection is wasted. In addition, the bandwidth has to be allocated according to peak rate. Hence, if the peak rate for a data connection is 3 Mbps, then the next available payload greater than 3 Mbps is the DS3 rate (45 Mbps) for SONET. In this case we would be wastingminimum 42 Mps bandwidth capacity.
Ethernet technology allows a maximum level of sharing of available bandwidth on a physical medium. Hence, on a typical 10 Mbps Ethernet bus, each user attached to the bus is capable of using the total 10 Mbps bandwidth. However, due to lack of coordination, conflicts arise among the users as a result of simultaneous attempts to access the bus by multiple users. Therefore, during a heavy traffic period, total available bandwidth is hardly accessible to any of the users. ATM technology, on the other hand, partitions the physical medium bandwidth logically and creates sub-rates at a very fine granularity. Each user is assigned a logical bandwidth pipe according to its needs. Through this logical partitioning, a user is isolated from the other users. Hence, ATM allows guarantee of service at the negotiated rates to every user. We will discuss in greater detail how ATM manages bandwidth allocation, types of bandwidth allocation strategies and bandwidth allocation classes later in this chapter."

Deuxième partie : Cellules de test (O.191)

[AtmQos Cellules de test 0.191, qualité de service : QoS, CDV, CTD...]

Troisième partie : Couche d'adaptation AAL. (I363.i)

[ AtmAal Couche d'adaptation : AAL, CBR, CVR, CS, SAR...]

Lexique & abréviations.

ATM    mode de transfert asynchrone (asynchronous transfer mode)
UNI    interface usager-réseau (user network interface)
NNI    interface réseau-réseau (network-network interface)
CRC    contrôle de redondance cyclique (cyclic redundancy check)
TC     transmission convergence
LOC    perte de continuité (loss of continuity)
CC     contrôle de continuité (continuity check)
LB     bouclage (loopback)
LCD    perte de cadrage des cellules (loss of cell delineation)
HEC    contrôle d'erreur sur l'en-tête (header error control)
OAM    gestion, exploitation et maintenance (operations administration maintenance)
F3     flux OAM au niveau des conduits de transmission (OAM flows on transmission path level)
F4     flux OAM au niveau des conduits virtuels (OAM flow on virtual path level)
F5     flux OAM au niveau des voies virtuelles (OAM flow on virtual channel level)
VCC    connexion de voie virtuelle (virtual channel connection)
VCI    identificateur de canal virtuel (virtual channel identifier)
VPI    identificateur de conduit virtuel (virtual path identifier)
GFC    contrôle de flux générique (generic flow control)
CLP    priorité à la perte de cellule (cell loss priority)

VP-AIS (signal d'indication d'alarme de conduit virtuel);
VP-LOC (perte de continuité de conduit virtuel);
VP-RDI (indication d'anomalie distante de conduit virtuel);
VC-AIS (signal d'indication d'alarme de voie virtuelle);
VC-LOC (perte de continuité de voie virtuelle);
VC-RDI (indicateur d'anomalie distante de voie virtuelle).

CLP    Cell Loss Priority (drapeau de perte de priorité)
CTD    Cell Transfert Delay (temps de transfertd e cellule)
CDV    Cell Delay Variation (CTD min - CTD max)
DBR    Deterministic Bit Rate
SBR    Statistic bit rate
TS     TimeStamp (horodate)
QoS    Quality of Service