Couche présentation

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

Définition OSI (ISO 7498-1) 

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

Services offerts par la couche présentation 
 Conversion de code caractère (par exemple ASCII/EBCDIC)
 Conversion de données (par exemple CR - CR/LF)
 Compression
 Chiffrement et déchiffrement

Exemples de couche de présentation

Le monde ISO 

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 

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
( annexe A et  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 structure 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.

Bibliographie 
 Network+ Guide to Networks, Tamara Dean, Cengage Learning, 2009
 Data and Computer Communications: Networking and Internetworking, Gurdeep S. Hura, Mukesh Singhal, CRC Press, 2001

Notes et références

Liens externes 
 

Modèle OSI