ASN.1 und ASCII < Algor.+Datenstr. < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
|
Hallo,
ich beschäftige mich gerade mit dem ISO/OSI Modell und verstehe nicht so ganz, was der Unterschied zwischen ASN.1 und dem ASCII Code ist.
Der ASCII Code legt ja die Zuordnung der binären Zeichen fest, also wenn es um das Thema Kodierung und Dekodierung geht. So sichert man ab, dass beide korrespondierenden Systeme sich in der gleichen "Sprache" unterhalten und nicht falsch interpretieren.
Was macht aber nun ASN.1 bzw die abstrakte Transfersyntax? Dies spielt sich ja ebenfalls auf Schicht 6 ab.
Ich wäre dankbar für eine Antwort!
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 23:20 Mo 09.02.2009 | Autor: | rainerS |
Hallo!
> Hallo,
>
> ich beschäftige mich gerade mit dem ISO/OSI Modell und
> verstehe nicht so ganz, was der Unterschied zwischen ASN.1
> und dem ASCII Code ist.
>
> Der ASCII Code legt ja die Zuordnung der binären Zeichen
> fest, also wenn es um das Thema Kodierung und Dekodierung
> geht. So sichert man ab, dass beide korrespondierenden
> Systeme sich in der gleichen "Sprache" unterhalten und
> nicht falsch interpretieren.
Das reicht aber nicht. Mit dem ASCII-Code legst du nur die Bedeutung einzelner Bytes fest, nicht mehr.
>
> Was macht aber nun ASN.1 bzw die abstrakte Transfersyntax?
ASN.1 ist kein Code wie ASCII, sondern eine abstrakte Beschreibung der übertragenen Daten. Zum Beispiel kannst du in ASN.1 sagen:
Jetzt kommt eine Folge von drei Datenelementen; das erste ist eine Zahl (INTEGER), das zweite eine ASCII-Zeichenkette (IA5STRING) mit Länge 7, das dritte eine Folge von Bits (BIT STRING) der Länge 1024.
Wie diese Information konkret kodiert wird, ist dadurch noch nicht festgelegt. Dafür gibt es im ASN-1-Standard die verschiedenen Encoding Rules.
Viele Grüße
Rainer
|
|
|
|
|
Ach, okay, das heißt:
Ich brauche definitiv einen Code wie den ASCII Code, damit beide Systeme sich überhaupt verständigen können.
Aber dazu habe ich die ASN.1-Syntax (abstrakt) die die Grammatik festlegt und erst die konkrete Transfersyntax, also die Encoding Rules bringen diese beiden Komponenten erst so zusammen, dass das Quell- und Zielsystem die Datenwerte richtig interpretieren können?
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 19:46 Di 10.02.2009 | Autor: | rainerS |
Hallo!
> Ach, okay, das heißt:
>
> Ich brauche definitiv einen Code wie den ASCII Code, damit
> beide Systeme sich überhaupt verständigen können.
Richtig.
> Aber dazu habe ich die ASN.1-Syntax (abstrakt) die die
> Grammatik festlegt und erst die konkrete Transfersyntax,
> also die Encoding Rules bringen diese beiden Komponenten
> erst so zusammen, dass das Quell- und Zielsystem die
> Datenwerte richtig interpretieren können?
Ja, aber auch da kommst es darauf an.
Die Encoding Rules sind Teil des ASN.1 Standards, die Interpretation der Daten nicht.
Normalerweise spezifizierst du deine Daten nach ASN.1 und lässt dann automatisch die passenden Deklarationen in irgendeiner Programmiersprache erzeugen.
Zum Beispiel: du kannst einen String in ASN.1 spezifizieren als IA5STRING, das heisst die einzelnen Zeichen sind nach ASCII kodiert. Du kannst aber auch den gleichen String in ASN.1 spezifizieren als OCTET STRING, dann wird überhaupt keine Interpretation der Bytes festgelegt, und es ist allein Sache der Anwendung, diese richtig zu interpretieren.
Andererseits kannst du, wenn du IA5String als Typ angibst, später nur ASCII-Zeichen hineinschreiben, also zum Beispiel keine Umlaute.
Schau mal in diesen Wikipedia-Artikel, da ist ein Beispiel mit verschiedene Kodierungen.
Viele Grüße
Rainer
|
|
|
|