# ATM Adaptation Layer 5

ATM Adaptation Layer 5 (AAL5) est une couche d'adaptation ATM utilisée pour envoyer des paquets de longueur variable allant jusqu'à 65 535 octets sur un réseau Asynchronous Transfer Mode (ATM).
Contrairement à la plupart des trames réseau, qui placent les informations de contrôle dans un en-tête, AAL5 place les informations de contrôle dans un en-queue de huit octets à la fin du paquet. L'en-queue AAL5 contient un champ de 16 bits, une somme de contrôle (Cyclic Redundancy Check, CRC) de 16 bits et deux champs de 8 bits nommés UU et CPI qui ne sont pas utilisés pour le moment.
Chaque paquet AAL5 est divisé en un nombre entier de cellules ATM et réassemblé en un paquet avant d'être remis à l'hôte. Ce processus est connu sous le nom « segmentation et réassemblage » (Segmentation And Reassembly, SAR, voir plus bas). La dernière cellule contient du bourrage afin que le paquet global soit un multiple de 48 octets. La dernière cellule contient donc au maximum 40 octets de données, suivis par des octets de bourrage et enfin l'en-queue de octets. En d'autres termes, AAL5 place l'en-queue dans les 8 derniers octets de la dernière cellule, où il peut être trouvé sans connaître la longueur du paquet. La cellule finale (où se trouve cet en-queue) est identifiée par un bit de l'en-tête ATM (voir plus bas).

## Convergence, segmentation et réassemblage

Quand une application envoie des données sur ATM en utilisant AAL5, l'hôte fournit un bloc de données à l'interface AAL5. AAL5 génère un en-queue, divise l'information en blocs de 48 octets et transfère chaque morceau sur le réseau ATM dans une cellule séparée. À l'extrémité réceptrice de la connexion, AAL5 réassemble les cellules entrantes en un paquet, vérifie le CRC pour s'assurer que tous les morceaux sont arrivés correctement, et passe le bloc de données résultant au logiciel de l'hôte. Le processus de division du bloc de données en cellules et de regroupement est connu sous le nom de segmentation et réassemblage (ATM segmentation and reassembly, SAR).
En séparant la fonctionnalité de segmentation et de réassemblage de la fonctionnalité de transport des cellules, AAL5 se conforme aux principes de l'architecture en couches des réseaux. Tandis que le transfert de cellules ATM est qualifiée de « proche en proche », puisque le protocole de communication s'applique d'une machine à la suivante (par exemple, entre un hôte et un commutateur, ou entre deux commutateurs), la couche AAL5 est qualifiée de « bout en bout », parce que le protocole de communication permet aux deux extrémités du circuit de discuter.
La couche AAL5 du côté du récepteur sait combien de cellules composent le paquet parce que la couche AAL5 émettrice utilise le bit de poids faible du champ « PAYLOAD TYPE » (type de contenu) de l'en-tête de cellule ATM pour marquer la dernière cellule du paquet. Ce bit dans l'en-tête de la dernière cellule peut être vu comme une information de « bout en bout ». Les standards ATM standards utilisent le terme « convergence » pour décrire les mécanismes qui servent à reconnaître la fin d'un paquet. Bien qu'AAL5 utilise un simple bit dans l'entête de la cellule, d'autres protocoles de couches d'adaptation ATM sont libres d'utiliser d'autres mécanismes de convergence.

## Type de paquet et multiplexage

L'en-queue AAL5 ne comprend pas de champ type. Par conséquent, une trame AAL5 n'identifie pas son contenu. Cela signifie que soit les deux hôtes aux extrémités d'un circuit virtuel se mettent d'accord a priori sur le fait que le circuit va être utilisé pour un protocole particulier (par exemple pour envoyer des datagrammes IP), soit ces deux hôtes se mettent d'accord a priori pour réserver certains octets de la zone de données comme un champ contenant le type de données.
Le RFC 2684 (Multiprotocol Encapsulation over ATM) décrit deux mécanismes d'encapsulation pour le trafic réseau, l'un d'entre eux implantant le premier mécanisme et l'autre implantant le second mécanisme.
Le premier mécanisme, dans lequel les hôtes s'entendent sur le protocole de plus haut niveau, est référencé dans le RFC 2684 sous le nom "Virtual Circuit Multiplexing". Il a l'avantage de ne pas nécessiter d'informations supplémentaires dans le paquet, ce qui diminue la charge réseau non utile (overhead). De plus, les différents protocoles sont placés dans des circuits virtuels différents et peuvent donc être traités avec des priorités et des délais différents. Le principal désavantage de ce mécanisme est qu'il conduit à multiplier les circuits virtuels : un hôte doit en effet créer un circuit virtuel séparé pour chaque protocole de haut niveau s'il utilise plus d'un protocole de haut niveau. Comme la plupart des fournisseurs font payer pour chaque circuit virtuel, leurs client cherchent à éviter le coût induit par les circuits virtuels multiples.
Le second mécanisme, dans lequel les hôtes utilisent un même circuit virtuel pour plusieurs protocoles, est décrit dans le RFC 2684 sous le nom "encapsulation LLC" (LLC encapsulation). Les standards suggèrent que les hôtes doivent utiliser un en-tête IEEE 802.2 Contrôle de la liaison logique (Logical Link Control, LLC) standard, suivi par un en-tête SNAP (Subnetwork Access Protocol) si nécessaire. Ce mécanisme a les avantages et inconvénients inverses du mécanisme précédent.
Le RFC 2684 précise que les hôtes peuvent choisir une ou l'autre méthode pour utiliser AAL5. L'émetteur et le récepteur doivent se mettre d'accord sur la méthode choisie, ce qui peut se faire par configuration manuelle.

## Encapsulation de datagramme IP et taille du MTU IP

Internet Protocol (IP) peut utiliser AAL5 combiné à l'un des autres mécanismes d'encapsulation décrits dans le RFC 2684 pour véhiculer des datagrammes sur un réseau ATM selon les indications du RFC 2225. Avant que les données ne puissent être envoyées, un circuit virtuel doit être établi et les deux extrémités doivent se mettre d'accord pour utiliser AAL5 sur le circuit. Ce circuit virtuel peut être permanent (PVC) ou commuté (SVC). Pour transmettre un datagramme, l'émetteur l'envoie à AAL5 en même temps que le couple VPI/VCI identifiant le circuit. AAL5 génère l'en-queue, divise le datagramme en cellules, et envoie les cellules sur le réseau. Du côté du récepteur, AAL5 réassemble les cellules, vérifie le CRC pour s'assurer qu'aucun bit n'a été perdu ou corrompu, extrait le datagramme et le passe à la couche IP.
AAL5 utilise un champ de 16 bits, ce qui permet d'envoyer jusqu'à 65 535 (2^16-1) octets dans un seul paquet. Néanmoins, le RFC 2225 précise un MTU par défaut de 9 180 octets par datagramme. Ainsi, à moins que les hôtes aux extrémités du circuit virtuel ne négocient un MTU plus élevé, les datagrammes IP dépassant 9 180 octets seront fragmentés.