Rechnernetze
Home Nach oben ASN.1 BER

Aufgaben der Darstellungsschicht

Die sechste Schicht wird als Darstellungsschicht (presentation layer) bezeichnet. Ihre Aufgabe ist es, den verschiedenen Teilnehmern auf verschiedenen Rechensystemen Daten mit der gleichen Bedeutung zu übertragen.

Wenn ein Rechner eine ganze Zahl (integer) mit 3 Bytes im Einerkomplement darstellt, während ein anderer eine ganze Zahl mit 4 Bytes im Zweierkomplement repräsentiert, so soll die Darstellungsschicht dafür sorgen, dass die beiden Rechner dennoch die jeweiligen Werte gleich interpretieren. Im Sinne unserer früheren Definition geht es also um die Übertragung von Information (=Bedeutung) statt nur um die Übertragung von Daten (=Bitmuster). Weitere Beispiele für diese Anwendung sind die unterschiedliche Darstellung von Zeichen des zu übertragenen Datensatzes, z.B. im ASCII (IA5)-Code oder im IBM-Standard EBCDIC, oder die unterschiedliche Reihung der Bytes einer ganzen oder reellen Zahl im Speicher (big endian, small endian).

Diese Problematik wird gegenwärtig zumeist pragmatisch gelöst, indem man Daten in einem Alphabet darstellt, zumeist IA5 oder in neueren Implementierungen Unicode, und es dem Empfänger überlässt, diese Daten richtig zu interpretieren. Dazu kann dem Empfänger vorher mitgeteilt werden, wie er die Nachricht zu verstehen hat. Bei Rechnern gleicher Hersteller entstehen zumeist auch keine Probleme bei der Darstellung von Zahlen, wenngleich die verbreitete Power-PC-Architektur (Apple) und die Intel-Prozessoren (IBM-PC) genau hier unterschiedliche Darstellungen verwenden.

Im Internet wird diese Problematik auf diese Weise gelöst. Es wird der Nachricht Zusatzinformation beigefügt, die es dem Empfänger ermöglicht, die Daten korrekt zu interpretieren. Dazu wird im MIME-Standard (RFC 2045/2046) eine Menge zusätzlicher Header definiert, anhand derer beispielsweise eine E-Mail eine Nachricht interpretieren kann. Dieses Verfahren wird auch z.B. bei HTTP eingesetzt.

Als Alternative wird im ISO/OSI-Basisreferezmodell vorgeschlagen, in der Darstellungsschicht eine netzweit einheitliche Umwandlung von Daten durchzuführen, so dass alle gleichen Werte im Netz auf die gleiche Weise dargestellt werden. Das Netz muss vom Teilnehmer zunächst erfahren, welche Bedeutung bestimmte Bitfolgen besitzen, und vor der Übertragung in das Netz diese in eine einheitliche Darstellung umwandeln. Der Empfänger muss dann die entsprechenden Rückumwandlungen durchführen, indem er die Werte, die er vom Netz erhält, in die lokale interne Kodierung transformiert. Es wird also im strengen Sinne des Wortes Information, und nicht nur eine Nachricht, übertragen. 

Offenbar muss die Beschreibung der Bedeutung von Werten durch eine Semantiksprache geschehen. Eine solche Sprache wird in X.208 bzw. IS 8824 auch als abstrakte Syntax bezeichnet. Der abstrakten Syntax ist zu entnehmen, was dargestellt wird, z.B. Zahlenwerte, Begriffe oder logische Werte (also die eigentliche Information oder Semantik). Die Repräsentation solcher Werte während der Übertragung (die Nachricht) wird durch eine eigene konkrete Syntax beschrieben, die im Prinzip unabhängig von der abstrakten Syntax gewählt werden kann.

Die Darstellung der Daten bei der Übertragung nennt man Transfersyntax. Diese kann somit wieder unterschieden werden in eine abstrakte Transfersyntax, welche die übertragbaren Werte beschreibt, und eine konkrete Transfersyntax, welche die Kodierung dieser Werte beschreibt.

Die Darstellungsschicht leistet somit die folgenden Aufgaben:

Bereitstellung mindestens einer abstrakten Syntax, in welcher der Teilnehmer die Bedeutung seiner Daten deklarieren kann.
Bereitstellung mindestens einer konkreten Syntax, in der die Daten im Netz übertragen werden können.
Bereitstellung der notwendigen Umwandlungsprozeduren, welche die konkrete Syntax der Anwendungsschicht in eine konkrete Syntax des Netzes umwandelt und umgekehrt.

Die abstrakte Syntax ist somit im Netz und auf der Anwendungsebene die gleiche; sie ist durch die Abstrakte Syntaxnotation Nummer 1 (ASN.1=abstract syntax notation) in der ISO 8824 bzw. CCITT T.409 definiert. Die konkrete Syntax, wie sie für die Übertragung verwendet werden soll, wurde in der ISO 8825 standardisiert und wird als Basic Encoding Rules (BER) bezeichnet.

Diese beiden Sprachen werden in den folgenden Abschnitten vorgestellt. Dabei wird ASN.1 außer für die Spezifikation der abstrakten Syntax auch für die Spezifikation von Protokollen und in vielen anderen Bereichen eingesetzt.