[0001] Die vorliegende Erfindung betrifft eine Dekodiervorrichtung für die Analyse von Kommunikationsprotokollen,
sowie ein korrespondierendes Verfahren zur Erstellung einer derartigen Dekodiervorrichtung.
[0002] In der Kommunikationstechnik läuft die Kommunikation zwischen mehreren Teilnehmern
nach sogenannten Kommunikationsprotokollen ab, d. h. für die Kommunikation werden
bestimmte Regeln vereinbart, an die sich die an der Kommunikation teilnehmenden Kommunikationseinrichtungen
halten müssen. Zur Überwachung von Kommunikationsnetzen, insbesondere auch zum Testen
von Kommunikationsnetzen nach Austausch eines Kommunikationsgeräts bzw. Erweiterung
des Netzes um weitere Kommunikationsgeräte werden, um Betriebsstörungen zu verhindern,
natürlich bereits vor der Inbetriebnahme unter Verwendung sogenannter Protokolltester
Tests durchgeführt, die ein Funktionieren der Kommunikation sicherstellen sollen bzw.
bei der Fehlersuche Unterstützung leisten sollen.
[0003] Derartige Protokolltester benötigen daher eine Dekodiervorrichtung, die es ihnen
ermöglicht, die jeweils vereinbarten Kommunikationsregeln auf die mitgehörten oder
als Endgerät empfangenen Daten anzuwenden, um diese zur weiteren Verarbeitung zu dekodieren.
Aufgrund der sich häufig ändernden zu analysierenden Protokolle, insbesondere im Hinblick
auf Geräte bzw. Hersteller spezifischer oder proprietärer Protokolle müssen derartige
Dekodiervorrichtungen möglichst flexibel ausgebildet sein und werden daher gewöhnlich
softwaremäßig realisiert. Besonders flexibel ist eine derartige Dekodiersoftware,
wenn sie generisch, d. h. für viele Protokolle passend programmiert ist, wobei dann
im Hinblick auf den speziellen Anwendungsfall die gerade benötigten Protokollbeschreibungen
in die generische Dekodier-Software geladen werden. Bei der bekannten, in Fig. 1 dargestellten
generischen Dekodiervorrichtung 10 werden Protokollbeschreibungen A bis X geladen.
Anschließende werden am Eingang 20 kodierte Daten zugeführt, am Ausgang 22 dekodierte
Daten zur weiteren Verarbeitung bereitgestellt.
[0004] Nachteilig daran ist, daß diese generische Dekodier-Software nicht so performant
ist wie die spezifische, direkt an das vorliegende Protokoll bzw. die vorliegenden
Protokolle angepasste Software. Insbesondere sind hierbei Nachteile im Hinblick auf
die Laufzeit zu erwähnen, was insbesondere bei Echtzeitanwendungen unerwünscht ist.
Dies liegt daran, daß die geladenen Protokollbeschreibungen von der generischen Dekodier-Software
interpretiert werden müssen.
[0005] Eine derartige generische Dekodier-Software verfügt naturgemäß nur über einen begrenzten
Befehlssatz, mit dem den zu ladenden Protokollen Rechnung getragen werden kann. Wenn
nunmehr eine neue bisher nicht berücksichtigte Protokollbeschreibung in den generischen
Dekodierer geladen werden soll, kann es dazu kommen, daß der im generischen Dekodierer
bereitgestellte Befehlssatz keine Möglichkeit bereitstellt, bestimmte Regeln dieser
neuen Protokollbeschreibung zum Ausdruck zu bringen. In diesem Fall ist es daher nötig,
den generischen Dekodierer zu modifizieren, was in einem erheblichen Wartungs- und
Änderungsaufwand resultiert. Dies liegt daran, daß durch stetiges Berücksichtigen
neuer Protokolle die generische Dekodierer-Software äußerst komplex wird und daher
Erweiterungen der Dekodierer-Software darin resultieren können, daß bisher funktionierende
Teile plötzlich nicht mehr in der vorgesehenen Weise arbeiten.
[0006] Eine Alternative hierzu besteht darin, siehe hierzu Fig. 2, einen für das gerade
zu analysierende Protokoll bzw. die gerade zu analysierenden Protokolle spezifischen
Dekodierer 12 zu programmieren, der aufgrund dieser speziellen Anpassung sowohl schnell
als auch übersichtlich analysieren kann. Problematisch hierbei ist, daß zu jedem neuen
Protokoll, insbesondere sind hier zur erwähnen die verschiedensten Protokolldialekte,
ein komplett neuer Software-Dekoder programmiert werden muß, was in großem Aufwand
und daher in hohen Kosten resultiert.
[0007] Vereinfacht ausgedrückt ist ein generischer Dekodierer, in den Protokollbeschreibungen
geladen werden können, zu vergleichen mit einem Prozessor, der zwar für keine Anwendung
speziell ausgerichtet ist, aber alles, jedoch langsam bearbeiten kann. Ein spezifischer
Dekodierer ist zu vergleichen mit einem Prozessor, der im Hinblick auf den speziellen
Anwendungsfall designed wurde, d. h. das auszuführende Programm ist in Hardware gegossen.
[0008] Vor diesem Hintergrund liegt der vorliegenden Erfindung die Aufgabe zugrunde, eine
Dekodiervorrichtung zur Verfügung zu stellen, die die Nachteile des Stands der Technik
vermeidet, insbesondere möglichst schnell arbeitet, wartungsfreundich und übersichtlich
ist.
[0009] Diese Aufgabe wird gemäß einem ersten Aspekt der Erfindung gelöst durch eine Dekodiervorrichtung,
die eine generische Dekodiervorrichtung umfasst, in die mindestens eine Protokollbeschreibung
eines Kommunikationsprotokolls ladbar ist, wobei die mindestens eine Protokollbeschreibung
von der generischen Dekodiervorrichtung interpretierbar ist, sowie mindestens eine
für eine bestimmte Protokollbeschreibung ausgelegte spezifische Dekodiervorrichtung.
[0010] Gemäß einem weiteren Aspekt der Erfindung wird diese Aufgabe gelöst durch ein Verfahren
zur Erstellung einer Dekodiervorrichtung, wobei zunächst eine generische Dekodiervorrichtung
bereitgestellt wird, in die mindestens eine Protokollbeschreibung eines Kommunikationsprotokolls
ladbar ist, wobei die mindestens eine Protokollbeschreibung von der generischen Dekodiervorrichtung
interpretierbar ist. Weiterhin wird mindestens eine für eine bestimmte Protokollbeschreibung
ausgelegte spezifische Dekodiervorrichtung bereitgestellt, wobei anschließend die
generische Dekodiervorrichtung und die mindestens eine spezifische Dekodiervorrichtung
zur Erzeugung der Dekodiervorrichtung reversibel verbunden, insbesondere gelinkt,
werden.
[0011] Der Erfindung liegt der Gedanke zugrunde, daß die Dekodierer-Software dadurch schnell
und wartungsfreundlich realisiert werden kann, daß der generische Dekodiereranteil
auf eine bestimmte Größe festgelegt wird, die noch keine Laufzeiten in einem unerwüschten
Bereich verursacht, und ergänzt wird um eine spezifische, im Hinblick auf das gerade
zu analysierende Protokoll maßgebliche Dekodiervorrichtung. Zu berücksichtigen ist,
daß lediglich der generische Dekodiereranteil, die in ihm geladenen Protokollbeschreibungen
interpretiert, dies jedoch nicht nötig ist bei der spezifischen Dekodiervorrichtung.
Dies resultiert in einem geringem Arbeitsspeicherbedarf, da nur der/die jeweils benötigten
spezifischen Dekodierer zum generischen Dekodierer hinzugeladen werden müssen. Der
Änderungsaufwand in der generischen Dekodierer-Software für neue Protokolle entfällt
vollständig, die Wartung der spezifischen Dekodierer kann getrennt von der übrigen
Dekodierer-Software erfolgen.
[0012] Es sei ausdrücklich darauf hingewiesen, daß die erfindungsgemäße Lösung nicht in
dem Sinne interpretiert werden kann, daß beispielsweise auch bei einem spezifischen
Dekodierer, wie er aus dem Stand der Technik bekannt ist, ein Kern von Befehlen besteht,
der dann um die jeweiligen speziellen, im Hinblick auf das gerade zu analysierende
Protokoll benötigten Funktionen erweitert wird. Der Unterschied zur Erfindung besteht
nämlich darin, daß im Stand der Technik ein einzelner Dekodierer entsteht, dessen
Bestandteile nicht mehr getrennt werden können. D. h. beim Warten eines derartigen
Dekodierers muß der gesamte Dekodierer durchgesehen werden und nicht nur der spezifische
Anteil. Umgekehrt muß bei einer Änderung des Befehlssatzes des Standardbestandteils,
des Kerns, eines aus dem Stand der Technik bekannten spezifischen Dekodierers ebenfalls
der gesamte Dekodierer bearbeitet werden, d.h. seine beiden Bestandteile sind nicht
unabhängig voneinander bearbeitbar.
[0013] Im Gegensatz hierzu sind die Bestandteile bei der erfindungsgemäßen Dekodiervorrichtung
trennbar, d. h. separat bearbeitbar. Wird beispielsweise die Protokollbeschreibung
X, die durch den spezifischen Dekodiereranteil berücksichtigt wird, durch eine Protokollbeschreibung
X' ersetzt, so ist lediglich der spezifische Dekodiereranteil für die Protokollbeschreibung
X zu bearbeiten bzw. durch die Protokollbeschreibung X' zu ersetzen.
[0014] In einer besonders bevorzugten Ausführungsform ist daher die generische Dekodiervorrichtung
und die mindestens eine spezifische Dekodiervorrichtung zur Erzeugung der Dekodiervorrichtung
reversibel verbindbar, insbesondere linkbar, d. h. daß die Trennung und der Neuaufbau
bzw. die Änderung der Bestandteile erfolgen kann, ohne die spezifische und die generische
Dekodiervorrichtung neu erzeugen zu müssen.
[0015] Bei einer besonders bevorzugten Ausführungsform umfasst die generische Dekodiervorrichtung
mindestens eine sogenannte Element-Funktion, die durch eine entsprechende Element-Funktion
der mindestens einen speziellen Dekodiervorrichtung überlagerbar ist. Diese Elementfunktionen
lassen sich am besten durch einen Vergleich beschreiben: Im generischen Dekodiereranteil
ist der Aufruf eines Makros eingearbeitet, wobei die jeweilige spezifische Dekoder-Software,
d. h. insbesondere der Element-Funktions-Anteil dieser spezifischen Dekodierersoftware
bestimmt, wie dieses Makro zu interpretieren ist. Eine derartig ausgebildete erfindungsgemäße
Dekodiervorrichtung ist somit noch universeller einsetzbar und auf den speziellen
Anwendungsfall anpassbar.
[0016] Im Hinblick auf das erfindungsgemäße Verfahren ist darauf hinzuweisen, daß die Verbindung
der generischen mit der spezifischen Dekodier-Software bzw. die Überlagerung der Elementfunktionen
des generischen Dekodierers durch Elementfunktionen des spezifischen Dekodierers durchgeführt
wird, bevor die kodierten Daten zugeführt werden.
[0017] Weitere vorteilhafte Ausführungsformen ergeben sich aus den Unteransprüchen.
[0018] Ausführungsbeispiele der Erfindung werden im folgenden unter Hinweis auf die beigefügten
Zeichnungen näher beschrieben. Es stellen dar:
Fig. 1 eine aus dem Stand der Technik bekannte generische Dekodiervorrichtung;
Fig. 2 eine aus dem Stand der Technik bekannte spezifische Dekodiervorrichtung für
eine Protokollbeschreibung X;
Fig. 3 eine erste Ausführungsform einer erfindungsgemäßen Dekodiervorrichtung; und
Fig. 4 eine zweite Ausführungsform einer erfindungsgemäßen Dekodiervorrichtung.
[0019] Die in Fig. 3 dargestellte erfindungsgemäße Dekodiervorrichtung 14 umfasst einen
generischen Dekodiereranteil 16, in den eine begrenzte Anzahl von Protokollbeschreibungen
A, B, C ladbar sind. Diese Protokollbeschreibungen werden im Betrieb der erfindungsgemäßen
Dekodiervorrichtung 14 von der generischen Dekodiervorrichtung 16 interpretiert. Sie
umfasst weiterhin eine spezifische Dekodiervorrichtung 18, die im Hinblick auf die
gerade zu analysierende Protokollbeschreibung X angepasst ist, d. h. beim Betrieb
der erfindungsgemäßen Dekodiervorrichtung findet in der spezifischen Dekodiervorrichtung
keine Interpretation statt. Dekodierte Daten werden am Eingang 20 der erfindungsgemäßen
Dekodiervorrichtung 14 zugeführt, am Ausgang 22 werden dekodierte Daten bereitgestellt.
[0020] Beim Verbinden, insbesondere beim Linken, der generischen Dekodiervorrichtung 16
mit der spezifischen Dekodiervorrichtung 18 ist entscheidend, daß diese Verbindung
reversibel ist, d. h. die einzelnen Bestandteile der erfindungsgemäßen Dekodiervorrichtung
14 können getrennt bearbeitet werden oder aktualisiert werden, ohne daß die spezifische
oder generische Dekodiervorrichtung neu erzeugt werden müßte.
[0021] Bei der in Fig. 4 dargestellten Dekodiervorrichtung umfasst die generische Dekodiervorrichtung
24 sogenannte Element-Funktionen funkt
x, die von entsprechenden Element-Funktionen der spezifischen Dekodiervorrichtung 26
für das Protokoll X überlagert werden. Im Betrieb der erfindungsgemäßen Dekodiervorrichtung
von Fig. 4 sind die überlagerten Element-Funktionen von der allgemeinen Dekodiervorrichtung
interpretierbar.
1. Dekodiervorrichtung (14) für die Analyse von Kommunikationsprotokollen umfassend:
- eine generische Dekodiervorrichtung (16; 24), in die mindestens eine Protokollbeschreibung
eines Kommunikationsprotokolls (A, B, C) ladbar ist, wobei die mindestens eine Protokollbeschreibung
von der generischen Dekodiervorrichtung (16; 24) interpretierbar ist; und
- mindestens eine für eine bestimmte Protokollbeschreibung ausgelegte spezifische
Dekodiervorrichtung (18; 26).
2. Dekodiervorrichtung nach Anspruch 1,
dadurch gekennzeichnet,
daß die generische Dekodiervorrichtung (16; 24) und die mindestens eine spezifische Dekodiervorrichtung
(18; 26) zur Erzeugung der Dekodiervorrichtung (14) reversibel verbindbar, insbesondere
linkbar, sind.
3. Dekodiervorrichtung nach einem der vorhergehenden Ansprüche,
dadurch gekennzeichnet,
daß die generische Dekodiervorrichtung (16; 24) mindestens eine Element-Funktion (funkt)
umfaßt, die durch eine entsprechende Element-Funktion (funktx) der mindestens einen speziellen Dekodiervorrichtung (26) überlagerbar ist.
4. Dekodiervorrichtung nach Anspruch 3,
dadurch gekennzeichnet,
daß die Überlagerung reversibel ist.
5. Dekodiervorrichtung nach einem Ansprüche 3 oder 4,
dadurch gekennzeichnet,
daß die mindestens eine überlagerte Element-Funktion (funktx) von der generischen Dekodiervorrichtung (24) interpretierbar ist.
6. Verfahren zur Erstellung einer Dekodiervorrichtung,
gekennzeichnet durch folgende Schritte:
a) Bereitstellen einer generischen Dekodiervorrichtung (16; 24), in die mindestens
eine Protokollbeschreibung (A, B, C) eines Kommunikationsprotokolls ladbar ist, wobei
die mindestens eine Protokollbeschreibung von der generischen Dekodiervorrichtung
(16; 24) interpretierbar ist;
b) Bereitstellen mindestens einer für eine bestimmte Protokollbeschreibung (X) ausgelegten
spezifischen Dekodiervorrichtung (18; 26);
c) Reversibles Verbinden, insbesondere Linken, der generischen Dekodiervorrichtung
(16; 24) und der mindestens einen spezifischen Dekodiervorrichtung (18; 26) zur Erzeugung
der Dekodiervorrichtung (14).
7. Verfahren zur Erstellung einer Dekodiervorrichtung nach Anspruch 6,
dadurch gekennzeichnet,
daß die generische Dekodiervorrichtung (24) mindestens eine Element-Funktion (funkt)
umfaßt, wobei diese mindestens eine Element-Funktion (funkt) beim Verbinden der generischen
Dekodiervorrichtung (24) mit der mindestens einen spezifischen Dekodiervorrichtung
(26) durch eine entsprechende Element-Funktion (funktx) der mindestens einen spezifischen Dekodiervorrichtung (26) überlagert wird.