2013-08-16 30 views
7

Ich versuche, mit einem Kommunikationsprotokoll (S1AP, um genau zu sein) zu arbeiten, und ich versuche, Nachrichten zum Testen zu definieren.Was ist eine ASN-Datei und wie verwende ich sie?

Die Spezifikation LTE 36.413 enthält Einzelheiten zu diesem Protokoll sowie eine ASN.1-Dateidefinition am Ende der PDF-Datei. Ich habe gesehen, dass ASN-Dateien im Dissektor für WireShark verwendet werden, und ich vermute, dass ich in der Lage sein könnte, sie zu verwenden, um Nachrichten gemäß der Spezifikation zu generieren.

Ich frage mich, wie Sie ASN.1-Dateien verwenden. Ich habe recherchiert und Informationen über ASN.1-Compiler und andere damit zusammenhängende Informationen gefunden, aber alle Informationen haben mich sehr verwirrt, da niemand klar erklärt hat, wie man sie benutzt. Könnte mir bitte jemand helfen, zu verstehen, wie man es benutzt?

Antwort

8

Nach viel Jagd habe ich herausgefunden, was ASN.1 Dateien sind.

Diese ASN.1-Dateien enthalten im Wesentlichen Protokollbeschreibung und Paketbeschreibung. Mit diesen ASN.1-Dateien können Sie .c- und .h-Dateien erzeugen, die in einer Anwendung verwendet werden, für die Sie diese verwenden möchten. Dies ist sehr praktisch, da Sie keine eigene Nachrichtendatenbank erstellen müssen. Sie müssen nur die ASN.1-Dateien kompilieren und Sie werden C-Dateien für Ihre Verwendung kompiliert werden.

Jetzt müssen Sie sich fragen, wie kompiliere ich das? Nun, im Allgemeinen benötigen Sie eine Art von ASN.1 Compiler. Sie müssen für einige bezahlen, aber ich konnte eine Open Source finden, die mit Linux und Windows funktioniert. Es ist möglich, dass es auch auf MAC funktioniert, da das UNIX-basiert ist, solange Sie die notwendigen Abhängigkeiten haben. In jedem Fall ist hier der Link zu dieser Webseite. Ich werde nicht erklären, wie man es benutzt, weil ich denke, dass diese Webseite einen schönen Job bei der Dokumentation der Nutzung leistet. Hoffe, das hilft jemandem genauso wie es mir geholfen hat.

Check out der Compiler hier http://lionet.info/asn1c/blog/

Wenn das Link bei Ihnen nicht funktioniert, müssen Sie eine kommerzielle wie OSS Nocklava ASN1.C Compiler, um zu versuchen, oder wenn Geld von Belang ist, dann könnte es sein, Es lohnt sich, eine eigene Datenbank zu erstellen, trotz der Zeit, die dies in Anspruch nehmen wird.

Alles Gute.

5
  1. ASN ist eine Datenbeschreibungssprache. Wie Sie bereits gesagt haben, gibt die gefundene ASN-Dateidefinition die Darstellung Ihrer Nachrichtendaten an, die der Kodierung und Dekodierung unter dem S1AP-Protokoll entspricht.

  2. Eine ASN-Datei muss kompiliert werden. Die Ausgabe aus der Kompilierung gibt Ihnen eine Code-Spezifikation und einen Hauptteil (in den meisten Fällen eine .h- und .c-Codedatei), um alle Nachrichtendaten automatisch an das S1AP-Datenmodell zu serialisieren/deserialisieren, unabhängig von der Plattform, von der codiert und gesendet wird.

  3. schnell zu testen und lernen, wie Sie Ihre ASN.1-Schema verwenden Sie diesen Dienst nutzen können: http://asn1-playground.oss.com/

  4. Auch für eine mehr in die Tiefe und prägnante Erklärung dessen, was diese ASN.1 mächtig macht, lesen Sie bitte : https://www.thanassis.space/asn1.html. Der Autor teilt auch einen Open-Source-ASN.1-Compiler, der unter der Aufsicht der Europäischen Weltraumorganisation entwickelt wurde.

  5. Als Randbemerkung, es könnte die Verwendung von Protocol Buffers eine Untersuchung wert, da es eine sehr ähnliche Technologie mit, wohl Augmented darstellt, modernere Funktionen wie rückwärts/vorwärts Datenbeschreibung Kompatibilität und Reflexion: https://developers.google.com/protocol-buffers/docs/cpptutorial

+0

Hallo Olivier, danke für deinen Beitrag. StackOverflow ist gerne eine eigenständige Website. Deine Quellen zuzuschreiben ist großartig, aber Link-Only-Antworten wie diese sind verpönt. Können Sie Ihren Beitrag bearbeiten, um die relevanten Details aus den von Ihnen zitierten Quellen hinzuzufügen? – AndyG

+0

Danke für die Bearbeitung. Es macht den Unterschied. – AndyG