Couche présentation

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Pile de protocoles
7. Application
6. Présentation
5. Session
4. Transport
3. Réseau
2. Liaison
1. Physique

Modèle Internet
Modèle OSI

La couche de présentation est la 6e couche du modèle OSI.

Définition OSI (ISO 7498-1)[modifier | modifier le code]

La couche présentation est chargée du codage des données applicatives. Les couches 1 à 5 transportent des octets bruts sans se préoccuper de leur signification. Mais ce qui doit être transporté en pratique, c'est du texte, des nombres et parfois des structures de données arbitrairement complexes. Un protocole de routage par exemple doit transporter un graphe représentant au moins partiellement la topologie du réseau. Le rôle de la couche présentation est donc de convertir les données applicatives manipulées par les programmes en chaînes d'octets effectivement transportées par le réseau.

Exemples de couche de présentation[modifier | modifier le code]

Le monde ISO[modifier | modifier le code]

Dans le monde ISO, la règle consiste à définir les données en ASN.1 (Abstract Syntax Notation) et à réaliser dans la couche de présentation le codage/décodage en BER ou DER.

Le monde IP[modifier | modifier le code]

Dans le monde IP, historiquement, la méthode canonique et implicite est de tout transformer en texte: codage des nombres entiers en décimal, non utilisation des flottants, utilisation de délimiteurs comme le guillemet ou la marque de fin de ligne (octets 13 et 10) avec des mécanismes d'échappements compliqués pour les cas où le délimiteur apparaît dans les données. Ces transformations sont spécifiées, et souvent répétées, pour chaque protocole applicatif, puisque le «modèle» IP ne contient pas de couche de présentation.

Cela ne résout le problème qu'à moitié puisque le codage des caractères en octets n'est pas défini. Soit on utilise le codage US-ASCII en ignorant les langues utilisant des caractères non ASCII (cf. par exemple le protocole SMTP (RFC 821 annexe A et RFC 822 section 3.3)), soit on ajoute parfois une déclaration de codage de caractères (cf. utilisation de MIME dans ESMTP et HTTP). Même dans le cas de HTTP, les URL sont décrites comme formées de caractères mais sans spécifier quels caractères sont autorisés. (Par exemple: la séquence d'échappement "%85" pour l'octet 133 est-elle valide ?)

Lorsque cela s'est avéré insuffisant au vu de la complexité de la structures des données à transporter, notamment pour le protocole applicatif "Remote Procedure Call" de Sun Microsystems, on a inventé XDR (External Data Representation), jusqu’à l’introduction de XML en 1998, dont la vocation était précisément d’étendre le mode de représentation SGML conçu pour des fichiers de type « document » (consommables par des humains) à des jeux d’éléments de données (à traiter par des machines) transitant sur Internet.

On notera qu'aucune de ces représentations n'est un protocole proprement dit. Cela illustre le fait que s'il n'y a pas de négociation du mode de codage, tout mécanisme utilisé pour l’enregistrement peut aussi faire office de fonction de présentation.