-
TECHNISCHER HINTERGRUND
DER ERFINDUNG
-
Die
Erfindung betrifft ein Verfahren zum Komprimieren von Datenpaketen,
ein Verfahren zum Dekomprimieren von Datenpaketen, Vorrichtungen zum
Komprimieren und Dekomprimieren von Datenpaketen und ein System
zum übertragen
von Datenpaketen in komprimierter Form. In allgemeineren Worten
betrifft die Erfindung ein Verfahren zur Durchführung einer Längenkonversion
von sogenannten Primitiven in einem Kommunikationssystem und Mittel
zur Umsetzung dieses Verfahrens.
-
Insbesondere
betrifft die Erfindung ein Verfahren zum Wandeln einer ersten Abfolge
von Datenpaketen, welche jeweils ein Kopffeld und ein Datenfeld
aufweisen, in eine zweite Abfolge von Datenpaketen, die jeweils
ein Kopffeld und ein Datenfeld aufweisen, wobei beide Abfolgen Datenpakete
aus einer Vielzahl von Kanälen
umfassen und Daten von den Datenfeldern der ersten Abfolge einem
Komprimierungsprozess unterworfen werden und dann in die Datenfelder
der zweiten Abfolge eingebracht werden. Solch ein Verfahren ist
aus der europäischen
Patentanmeldung EP-A-0,559,593
bekannt.
-
Datenkompression
wird in der Praxis angewandt, um die Kapazität eines Kommunikationskanals
zu erhöhen.
Durch das Komprimieren der zu übertragenden
Daten kann eine gewisse Anzahl von Daten in geringerer Zeit oder
geringerer Bandbreite übertragen
werden. Die Datenkompression wird in diesem Kontext in vielen Fällen durch
einen Komprimierungsprozess bestimmt, in dem die Frequenz des Auftretens
von Datenwörtern
oder Nachrichten eingesetzt wird, um die Daten effizienter zu kodieren: Durch
Ersetzen der häufigsten
Daten durch einen kurzen Code und weniger häufiger Daten durch einen langen
Code kann ein hoher Kompressionsgrad erreicht werden. Die komprimierten
Daten können dann
beispielsweise in Form von Datenpaketen übertragen werden. Somit wird
eine erste Abfolge von Datenpaketen in eine zweite Abfolge transformiert;
im Falle einer erfolgreichen Komprimierung wird die zweite Abfolge
im Allgemeinen kürzer
sein, d.h. weniger Daten als die erste Abfolge enthalten.
-
Bei
dem bekannten Verfahren wird eine erste Abfolge von Datenpaketen,
die aus verschiedenen Quellen (Kanälen) stammen kann, in eine
zweite Abfolge von Datenpaketen transformiert, die über einen (Netzwerk-)Kanal übertragen
werden können,
wobei Informationen in den Datenfeldern der zweiten Abfolge gespeichert
wird, welche sich auf die originalen Datenpakete beziehen. Daher
enthalten die Datenfelder der zweiten Abfolge Unter-Kopffelder,
die unter anderem die Länge
eines komprimierten Datenfeldes und Rekonstruktionsinformationen
enthalten. Auf der Basis dieser besagten Unter-Kopffelder können die originalen
Datenfelder, d.h. die Datenfelder der Datenpakete der ersten Abfolge,
rekonstruiert werden.
-
Dieses
bekannte Verfahren weist den Nachteil auf, dass eine relativ grosse
Menge zusätzlicher Information,
d.h. die Unter-Kopffelder,
zu übertragen ist.
Im Ergebnis sind die Datenfelder der zweiten Abfolge effektiv in
der Grösse
vermindert und die nutzbare Übertragungskapazität an Datenpaketen
vermindert sich. Diese Wirkung ist noch mal stärker bei kleineren Paketlängen, wenn
ein relativ grosser Anteil der möglichen Übertragungskapazität durch
diesen Overhead eingenommen wird. Darüber hinaus müssen in
dem bekannten Verfahren die Unter-Kopffelder jeweils auf der Empfangsseite
von den Nutzdaten getrennt werden, bevor die Datenfelder dekomprimiert
werden können.
Dies führt
zu einem zusätzlichen
Verarbeitungsschritt, der sowohl Verarbeitungszeit als auch Verarbeitungsmittel
kostet (Schaltkreise und/oder Software). Falls das bekannte Verfahren über ein
Netzwerk mit Zwischenstationen (Vermittlungsstellen, Schaltpunkte)
zur Übertragung
von Nachrichten zwischen verschiedenen Quellen und Zielen eingesetzt
wird, beinhaltet das bekannte Verfahren weiterhin die Notwendigkeit
für alle
Zwischenstationen, die Komprimierungsfunktion zu unterstützen, da
das Weiterleiten des Netzwerkes an das Bündeln von Kanälen in den
komprimierten Datenpaketen angepasst werden muss.
-
Halsall
F et al.: „Prototype
X25 exchange for use in local area networks" in Software and Microsystems, IEE.
London, Grossbritannien, Band 1, Nr. 3, April 1982, untersucht,
wie WAN (Abkürzung
für Wide
Area Network, grossräumiges
Netz) Protokolle, und insbesondere das X25-Protokoll, für Lokale Netzwerkstrukturen
(LANs) eingesetzt werden könnte.
Es beschreibt eine geeignete Topologie für LANs, umfassend ein sogenanntes
High-Level Netzwerk, umfassend eine X25 basierte Packetvermittlungsstelle.
Alle DTE's in dem
Netzwerk sind mit der X25-Vermittlung durch Mittel verbunden, bei
denen es sich um sogenannte „interchannel
units" (IU) handelt,
einen gemultiplexten Parallelbus. Alle DTE's erhalten Zugang zu der IU durch eine
sogenannten „Verbindungszugangseinheit" (abgekürzt LAU
für „link access
unit"). Da die IU,
der „gemultiplexte
parallele Bus" eine
begrenzte Kapazität
hat, wird der Zugriff auf die IU durch ein „Interrupt gesteuertes Protokoll" gesteuert, was bedeutet,
dass nur ein LAU zur selben Zeit körperlichen Zugriff auf die
IU haben kann (speise Pakete auf die körperliche Verbindung). Die IU
enthält
Pakete eines Quellkanals und nur für ein Ziel. Falls ein Komprimierungsverfahren
auf dieses Netzwerk anzuwenden wäre,
würde das
Problem der Pakete, die komprimierte Daten von verschiedenen Kanälen enthalten,
nicht auftreten.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Das
Ziel der vorliegenden Erfindung ist es, die oben genannten und andere
Nachteile des Standes der Technik zu überwinden und ein Verfahren zum
Umwandeln durch Datenkompression von einer Abfolge von Datenpaketen
anzugeben, was eine effiziente Übertragung
der komprimierten Daten durch optimalen Einsatz der Datenfelder
der zweiten Abfolge liefert.
-
Insbesondere
ist es ein Ziel der vorliegenden Erfindung, ein Verfahren anzugeben,
um Datenfelder zu transformieren, welches es schafft, dass Datenpakete
von verschiedenen Kanälen
in effizienter Weise verarbeitet werden.
-
Ein
weiteres Ziel der vorliegenden Erfindung liegt darin, ein Verfahren
zum Transformieren von Datenpaketen anzugeben, welches besonders
geeignet für
den Einsatz in X.25 Netzwerken ist.
-
Es
ist auch ein Ziel der vorliegenden Erfindung, ein Verfahren zum
Transformieren von Datenpaketen anzugeben, welches von dem eingesetzten Komprimierungs-
oder Dekomprimierungsverfahren unabhängig ist.
-
Zu
diesem Zweck ist das Verfahren gemäss der Erfindung dadurch gekennzeichnet,
dass jedes Datenfeld der zweiten Abfolge Daten von nur einem Kanal
enthält,
und dass Daten, die in ein Datenfeld der zweiten Abfolge eingesetzt
werden, je Kanal komprimiert werden.
-
Zu
diesem Zweck ist das Verfahren gemäss einem Ausführungsbeispiel
der Erfindung dadurch gekennzeichnet, dass jedes Datenfeld der zweiten Abfolge
nur Daten aus einem einzigen Kanal enthält, und dass in einem Datenfeld
des zweiten Kanals einzupassende Daten je Kanal gepuffert werden.
Mit anderen Worten, in der zweiten Abfolge werden nur Daten von
einem Kanal in dem Datenfeld für
jedes Paket eingebracht. Dies hat unter anderem den Vorteil, dass
die (komprimierten) Daten der verschiedenen Kanäle in getrennten Datenpaketen übertragen
werden, so dass es nicht notwendig ist, innerhalb eines Datenpaketes
zu spezifizieren, zu welchem Kanal das Datenpaket gehört. Die
Datenpakete der zweiten Abfolge können daher im Prinzip direkt
an ihre letztendliche Zieladresse weitergeleitet werden, ohne vorher
dekomprimiert zu werden. Durch das getrennte Komprimieren von jedem
Kanal wird gemäss
der Erfindung weiterhin gewährleistet,
dass nur die Übertragungs-
und Empfangsstation innerhalb eines Netzwerkes die Komprimierung
unterstützen
müssen,
ohne dass das Übertragungsnetzwerk
selbst dafür
ausgelegt sein muss. Gemäss
dem erwähnten Stand
der Technik ist dagegen eine Anpassung des Netzwerkes notwendig,
um die Komprimierung einer Vielzahl von Kanälen zu unterstützen, d.h.
eine Vielzahl von (Quellen-) Kanälen
zu einem (Netzwerk-) Kanal.
-
Um
die Möglichkeit
von aufeinanderfolgenden Datenpaketen in der ersten Abfolge (von
originalen Datenpaketen), die zu verschiedenen Kanälen gehören, zu
erreichen, ohne, in der zweiten Abfolge, teilweise leere Datenpakete
zu übertragen,
werden gemäss
der Erfindung die Daten von verschiedenen Kanälen getrennt gepuffert, d.h.
je Kanal. Dies macht es möglich,
in optimaler Weise die Datenpakete der zweiten Abfolge von („komprimierten" Datenpaketen) mit
Daten zu füllen,
da für
jeden Kanal komprimierte Daten aufgespeichert werden können, z.B.
bis das Datenfeld eines Datenpaketes ganz gefüllt ist.
-
In
diesem Zusammenhang bezieht sich der Begriff „Kanal" auf einen logischen Kanal, mit anderen
Worten, auf einen Übertragungs weg
zwischen einer Quelle (Sendeseite) und einem Ziel (Empfangsseite),
welcher Weg nur für
eine bestimmte Zeit existiert. In diesem Verfahren kann eine Vielzahl
von Kanälen über eine
körperliche
Verbindung aktiv sein, aber ein Kanal muss nicht direkt einer bestimmten körperlichen
Verbindung zugeordnet sein. Über
einen Kanal werden eine oder mehrere Nachrichten in der Gestalt
von Datenpaketen übertragen,
wobei eine Nachricht üblicherweise
durch eine Markierung „Ende
der Nachricht" (Stoppcode)
beendet wird. Solch eine Markierung „Ende der Nachricht" dient daher dazu,
das Ende einer Gruppe von Datenpaketen anzuzeigen, die in funktionaler
Weise miteinander verbunden sind.
-
Ein
Kanal kann möglicherweise
mehrere Unterkanäle
umfassen (zusammengesetzte Kanäle), wobei
beispielsweise ein Unterkanal Benutzerdaten trägt, während ein anderer Unterkanal
Steuerdaten trägt.
Im Falle des X.25-Protokolls werden die Unterkanäle durch das Q-Bit identifiziert.
Im Falle, dass Unterkanäle
identifiziert werden können,
ist das Verfahren gemäss
der Erfindung dadurch gekennzeichnet, dass in jedem Datenfeld der
zweiten Abfolge Daten von nur einem Unterkanal enthalten sind, und dass
Daten, die in einem Datenfeld der zweiten Abfolge einzuordnen sind,
je Unterkanal gepuffert sind. Es ist wohlverstanden, dass ein Unterkanal
mit einem Kanal zusammenfallen kann. Zu diesem Zweck wird in der
Beschreibung allgemein das Wort „Kanal" mit der Bedeutung verstanden „Kanal
oder Unterkanal".
-
Die
oben erwähnte
Abfolge von Datenpaketen kann aus einer oder mehreren Nachrichten
bestehen, kann sowohl synchron als auch asynchron sein und braucht
nicht eine feste oder spezifische Länge aufzuweisen. Daher kann
eine „Abfolge" selbst aus einem
einzelnen Datenpaket bestehen.
-
In
den Begriffen des OSI-Modells (siehe Druckschrift 3, Kapitel 12)
kann der Erfindung zugesprochen werden, in einem Kommunikationssystem ein
Verfahren zur Durchführung
einer Längenkonversion
von Primitiven einer ersten Schicht (z.B. n) zu liefern, wobei die
Primitiven in eine zweite, untere Schicht (z.B. n-1) übertragen
werden, wobei die Primitiven funktionelle Beziehungen zueinander
haben, und die Längenwandlung
das Anpassen der Anzahl der Dateneinheiten in solch einer Weise
umfasst, dass die Primitiven ihre funktionellen Beziehungen behalten.
In den oben genannten Fällen
umfassen die funktionellen Beziehungen einen Kanal oder eine Benutzeridentität, während die
Längenwandlung
die Datenkompression umfasst.
-
In
dem Verfahren gemäss
der Erfindung wird vorzugsweise eine Prüfung ausgeführt, ob das letzte Datenpaket
eines Kanals in der ersten Abfolge auftritt und im Falle, dass das
letzte Datenpaket auftritt, werden alle gepufferten Daten dieses
Kanals in ein oder mehrere Datenpakete der zweiten Abfolge eingepasst.
Das heisst, sobald das letzte Datenpaket eines Kanals empfangen
worden ist, wird der entsprechende Puffer (oder Satz von Puffern)
geleert und alle Daten dieses Puffers werden in die Datenpakete übernommen.
Somit wird eine Gruppe von Datenpaketen eines bestimmten Kanals
ohne eine bestimmte Wartezeit, die zu diesem Zweck abzulaufen hat,
geschlossen. Weiterhin können
geleerte Puffer einem anderen Kanal verfügbar gemacht werden. Hierzu kann
in diesem Zusammenhang der Begriff „das letzte Datenpaket eines
Kanals" generell
verstanden werden als „das
letzte Datenpaket einer Gruppe von Datenpaketen eines Kanals", und umfasst damit
das letzte Datenpaket einer Nachricht, die über diesen Kanal übertragen
worden ist. Der Kanal selbst kann beispielsweise eine körperliche
oder logische Verbindung umfassen und in dem Verfahren weiter bestehen.
Das Auftreten des letzten Datenpaketes kann festgestellt werden,
beispielsweise durch eine Markierung „Ende der Nachricht". Die besagte Gruppe von
Datenpaketen, von denen das Auftreten des letzten Datenpaketes festgestellt
wird, könnte
auch einen Teil einer Nachricht oder einer Vielzahl von Nachrichten
umfassen, beispielsweise die Datenpakete eines Kanals, die während einer
bestimmten Periode empfangen worden sind.
-
Wenn
das letzte Datenpaket eines Kanals der erste Abfolge aufgetreten
ist und die gepufferten Daten in einem Datenpaket der zweiten Abfolge
eingepasst sind, ist es möglich,
dass die gepufferten Daten das Datenfeld des Datenpakets nicht in
seiner Gänze
auffüllen
können.
Um in einer einfachen Weise auf der Empfangsseite feststellen zu
können,
wo die Nutzdaten enden, ist vorgesehen, dass, falls in ihrer zweiten
Abfolge das Datenfeld des letzten Datenpaketes eines Kanals nicht
in der Gesamtheit gefüllt ist,
dieses Datenfeld mit Abschlussdaten aufgefüllt wird. Diese Abschlussdaten
werden vorzugsweise in solch einer Weise ausgewählt, dass sie als solche in einer
einfachen Weise von der Empfangsseite festgestellt werden können und
umfassen daher vorzugsweise einen festen Code. Daher können diese Abschlussdaten
einen Strang von identischen Bits umfassen, vorzugsweise mindestens
elf Einsen. Die Anzahl der identischen Bits ist vorzugsweise im
Verfahren gemäss
der für
die Datenkompression eingesetzten Codierung ausgewählt, beispielsweise
in solch einer Weise, dass die Anzahl von Bits gleich oder grösser ist
als die Anzahl an Bits des längsten Codeworts.
-
Vorzugsweise
wird, wenn Abschlussdaten in einem Datenpaket der zweiten Abfolge
vorliegen, eine Prüfung
ausgeführt,
ob ein letztes Datenpaket in der ersten Abfolge aufgetreten ist.
Somit wird eine einfache und dennoch hoch effektive Fehlerprüfung durchgeführt.
-
Vorzugsweise
wird das Verfahren gemäss der
Erfindung in solch einer Weise ausgeführt, dass ein Datenfeld der
zweiten Abfolge ausschliesslich komprimierte Daten und/oder Abschlussdaten
umfasst. Mit anderen Worten: In einem Datenfeld der zweiten Abfolge
treten keine zusätzlichen
Informationen auf in Bezug auf die Länge einer Nachricht, den betreffenden
Kanal oder ähnlichem.
Somit kann die verfügbare Übertragungskapazität für Datenpakete in
optimaler Weise genutzt werden. Möglicherweise können in
diesem Zusammenhang die sogenannten „komprimierten Daten" in manchen Fällen auch
nicht komprimierte Daten umfassen, die dann jedoch aus einem Datenfeld
der ersten Abfolge stammen.
-
Vorzugsweise
wird das Auftreten des letzten Datenpaketes eines Kanals auf der
Basis von Informationen in den Kopffeldern der Datenpakete der ersten
Abfolge diagnostiziert. So kann die Identifizierung des letzten
Datenpaketes stattfinden, beispielsweise zur selben Zeit wie die
Kanalidentifikation. Falls Datenpakete zu wandeln sind, die nicht
mit solch einer Identifikation in den Kopffeldern versehen sind,
kann das Auftreten des letzten Datenpaketes in einer anderen Weise
festgestellt werden, z.B. durch Identifizieren von Abschlussinformationen
in einem Datenfeld der ersten Abfolge.
-
Falls
die Datenpakete für
Datenübertragung in Übereinstimmung
mit dem X.25-Protokoll ausgestaltet sind, umfasst die Information,
auf der Basis von welcher das Auftreten des letzten Datenpaketes eines
Kanals diagnostiziert wird, vorzugsweise das m-Bit („Mehr Bit" für „more bit"). Falls das m-Bit
gleich zu Null ist, werden keine weiteren Datenpakete desselben
Kanals mehr folgen. Somit kann eine sehr einfache Identifikation
des letzten Datenpakets erreicht werden.
-
Gemäss dem Verfahren
nach der Erfindung können
viele verschiedene Komprimierungsverfahren eingesetzt werden. Vorzugsweise
wird in einem Komprimierungsverfahren eine Tabelle mit Codewörtern eingesetzt,
die auf der Frequenz des Auftretens von Daten basiert. Unter Bezugnahme
auf solch eine Tabelle wird jedes originale Datenwort durch ein
Codewort ersetzt, wobei gewisse Datenworte, die häufig auftreten
(oder beispielsweise einen hohen Informationsgehalt haben), in einem
relativ kurzen Code eingesetzt werden. Mit Komprimierungsverfahren
dieses Typs, die an sich bekannt sind, kann die Tabelle während des
Komprimierungsverfahrens zusammengesetzt werden. Bei dem Verfahren
gemäss
der Erfindung wird jedoch vorzugsweise eine feste (Frequenz-)Tabelle
eingesetzt. Durch das Mittel einer (vorbestimmten) festen oder zumindest
zeitweise festen Tabelle ist es möglich, zu verhindern, dass
Datenexpansion zu Beginn des Komprimierungsprozesses stattfindet.
Darüber
hinaus vermeidet dies Bit-Fehler in der Übertragung, die daraus entstehen, dass
die jeweiligen Tabellen auf der Übertragungsseite
und der Empfangsseite aus der Synchronisierung laufen. Nach einer
vorbestimmten Zeit oder nach einer vorbestimmten Anzahl von Datenpaketen kann
die Tabelle erneuert und/oder überprüft werden.
-
Es
ist möglich,
dass die Komprimierung nur auf Datenpakete von einigen der Kanälen angewandt wird,
so dass die Daten von mindestens einigen Kanälen in der zweiten Abfolge
in nicht komprimierter Form eingesetzt werden. In dem Verfahren
können sich
die nicht komprimierten Daten gar nicht geändert haben oder sie können einer
vollständig
anderen Operation, wie einer Verschlüsselung, unterzogen worden
sein. Weiterhin können
Daten, die tatsächlich komprimiert
worden sind, auch einer unterschiedlichen Behandlung wie Verschlüsselung
unterzogen werden.
-
Obwohl
das Verfahren gemäss
der Erfindung hier unter Bezugnahme auf das Wandeln von Datenpaketen
beschrieben worden ist, ist es auch möglich, anstelle von ersten
und/oder dritten Abfolgen von Datenpaketen einen oder mehrere (synchrone
oder asynchrone) Bit ströme
zu wandeln. Es ist auch möglich,
dass die erste Abfolge und im Falle von bidirektionalem Verkehr
auch die dritte Abfolge durch eine Abfolge von Zeitschlitzen ausgebildet
wird.
-
Die
Erfindung liefert weiterhin ein Verfahren zum Wandeln einer zweiten
Abfolge von Datenpaketen in eine dritte Abfolge von Datenpaketen
mit Kopffeldern und Datenfeldern, wobei Daten aus den Datenfeldern
der zweiten Abfolge einem Dekomprimierungsverfahren unterzogen und
in Datenfeldern der dritten Abfolge abgelegt werden. Durch diese
Vorgehensweise werden Daten, die in einem Datenfeld der dritten
Abfolge abzulegen sind, vorzugsweise je Kanal gepuffert. Falls die
Dekomprimierung und die Komprimierung symmetrisch sind, können Datenpakete
der dritten Abfolge in diesem Falle zu Datenpaketen der ersten Abfolge
identisch sein.
-
Wenn
das Verfahren gemäss
der Erfindung für
die Übertragung
von Datenpaketen eingesetzt wird, bei der in der ersten Abfolge
Datenpakete von mindestens einem Kanal diskontinuierlich auftreten, ist
es vorteilhafterweise möglich,
für diesen
Kanal mindestens ein Datenpaket der zweiten Abfolge diskontinuierlich
zu übertragen,
selbst wenn das Datenfeld dieses Datenpakets nur teilweise gefüllt ist.
Im Ergebnis können
lange Verzögerungen
in der Datenübertragung
vermieden werden. (Falls in dem Verfahren die Datenpakete der ersten
Abfolge in Übereinstimmung
mit dem X.25-Protokoll übertragen
werden, kann es vorteilhaft sein, dass m-Bit eines solchen Datenpaketes
zu ignorieren.) Datenpakete der zweiten Abfolge können zu
diesem Zweck beispielsweise zu vorbestimmten Zeiten übertragen
werden oder falls eine bestimmte Zeit vergangen ist, seit (im Allgemeinen
komprimierte) Daten in einen leeren Puffer eingesetzt worden sind
(der sogenannte „Time-out-Mechanismus"). In solch einer
Art und Weise werden Datenpakete in intermittierender Weise komprimiert
und übertragen.
Dies ist insbesondere vorteilhaft für Datenquellen, die Daten nur
inter mittierend erzeugen, wie Messinstrumente. In einem Modus wird
in ähnlicher
Weise keine Berücksichtigung des
Endes einer Gruppe von Datenpaketen genommen, aber ein Paket der
zweiten Abfolge wird übertragen,
sobald die Daten eines Paketes der ersten Abfolge verarbeitet worden
sind. Falls die Datenpakete der zweiten Abfolge kleiner sind als
die der ersten Abfolge, wird die Komprimierung immer in einer Verbesserung
der Effizienz der Datenübertragung
resultieren, selbst wenn jedes Datenpaket einer ersten Abfolge in
ein Datenpaket der zweiten Abfolge gewandelt worden ist (1-zu-1-Wandlung).
Im Falle des X.25-Protokolls können
Datenpakete der zweiten Abfolge dann aus weniger Segmente (von z.B.
64 Bytes) bestehen.
-
Die
Erfindung liefert darüber
hinaus eine Vorrichtung zum Komprimieren von Datenpaketen, eine Vorrichtung
zum Dekomprimieren von Datenpaketen und ein System zum Übertragen
von Datenpaketen in komprimierter Form.
-
DRUCKSCHRIFTEN
-
- [1] EP-A-0,559,593
- [2] ITU Recommendation V.42 bis
- [3] F. Mazda (Ed.) : "Telecommunications
Engineer's Reference
Book", Oxford 1993
- [4] ITU Recommendations V.34
- [5] ITU B-ISDN Adaptation Layer Specification I.363
- [6] P. Horowitz & W.
Hill: "The Art of
Electronics", Cambridge
1989.
-
Diese
Druckschriften werden hiermit als in den Beschreibungstext angenommen
angesehen.
-
BEISPIELHAFTE AUSFÜHRUNGSBEISPIELE
-
Die
Erfindung wird nun in grösserem
Detail unter Bezugnahme auf die Figuren näher beschrieben. Es zeigen:
-
1 eine
schematische Ansicht der Wandlung einer ersten Abfolge von Datenpaketen
in eine zweite Abfolge von Datenpaketen,
-
2 eine
schematische Ansicht des Verfahrens des Komprimierens von einer
Abfolge von Datenpaketen gemäss
der Erfindung,
-
3 eine
schematische Darstellung des Verfahrens gemäss der Erfindung in Bezug auf
ein OSI-Modell,
-
4 eine
schematische Darstellung eines ersten Ausführungsbeispiels einer Vorrichtung
zum Komprimieren und/oder Dekomprimieren von Datenpaketen gemäss der Erfindung,
-
5 eine
schematische Ansicht eines zweiten Ausführungsbeispiels einer Vorrichtung
zum Komprimieren und/oder Dekomprimieren von Datenpaketen gemäss der Erfindung,
und
-
6 eine
schematische Ansicht eines Systems zum Übertragen von Datenpaketen,
bei dem die Erfindung angewandt worden ist.
-
Die 1 zeigt
eine erste Abfolge 10 von (Quellen-) Datenpaketen als Beispiel.
Die aufeinanderfolgenden Datenpakete 11, 12, 13, 14 und 15 der Abfolge 10 können zu
verschiedenen Kanälen
gehören.
In dem dargestellten Fall gehören
die Datenpakete 11, 12 und 14 zu Kanal
A, während
die Datenpakete 13 und 15 zu Kanal B gehören. Natürlich ist
es in der Praxis möglich,
dass längere
Abfolgen auftreten, deren Datenpakete dann mehr als zwei Kanälen zugehörig sind.
-
Die
Erfindung schafft die Wandlung der ersten Abfolge 10 in
eine zweite Abfolge 20 von (Übertragungs-)Datenpaketen.
Die aufeinanderfolgenden Datenpakete 21, 22 und 23 gehören jeweils
zu den Kanälen
A, A und B.
-
Jedes
Datenpaket der dargestellten Abfolge 10 und 20 umfasst
ein Kopffeld (oder Kopf) h und ein Datenfeld d. Durch den Einsatz
eines geeigneten Komprimierungsverfahrens werden die Datenpakete 11 bis 15 (inklusive)
in die Datenpakete 21 bis 23 (inklusive) gewandelt.
Gemäss
der Erfindung umfasst dies das Einpassen nur der Datenfelder d (Quellen-) Datenpakete
der Abfolge 10 in komprimierter Form in die Datenfelder
d der (Übertragungs-)
Datenpakete der Abfolge 20. Mit anderen Worten wird die
Information der Kopffelder h der Datenpakete 11 bis 15 nicht in
die Datenfelder der Datenpakete 21 bis 23 eingebunden.
Auf der anderen Seite können
die Kopffelder h der Datenpakete einer ersten Abfolge 10 zumindestens
in Teilen und in manchen Fällen
sogar in ihrer Gesamtheit Datenkopffeldern h von Datenpaketen einer
zweiten Abfolge 20 entsprechen. Es ist für die zweite
Abfolge auch möglich,
dass sie eine Struktur aufweist, die zu der der ersten Abfolge vollkommen unterschiedlich
ist und beispielsweise nach einem anderen Protokoll zusammengestellt
worden ist.
-
Eine
Abfolge von Datenpaketen desselben Kanals, wie sie in der ersten
Abfolge 10 dargestellt durch die Datenpakete 11, 12 und 14 ausgebildet werden
kann, wird im allgemeinen eine begrenzte Länge haben. Das letzte Paket
einer solchen Gruppe wird im Allgemeinen mit einer Markierung versehen, um
dem Ziel bekanntzugeben, dass eine bestimmte Nachricht abgeschlossen
ist. Im Falle des X.25-Protokolls wird dies durch das Einbinden
in das Kopffeld von einem Bit (das „m-Bit", für „mehr-Bit" nach „more bit") erreicht, welches
gleich zu Null ist (m=0), falls keine weiteren Datenpakete derselben
Nachricht oder Kanal folgen, sonst ist das Bit gleich zu Eins (m=1).
Ein anderer Weg anzuzeigen, dass keine weiteren Datenpakete derselben
Gruppe folgen, ist es, in das Datenfeld einen Stoppcode einzubinden
(„Ende der
Nachricht"), was durch
den Empfänger
festgestellt werden kann. Solch ein Stoppcode kann beispielsweise
aus Steuersymbolen bestehen, die in einer einfachen Weise von den
normalen Nutzdaten unterschieden werden können. Falls gewünscht, kann
das Ende einer Nachricht von der Zeitspanne abgeleitet werden, die
abgelaufen ist, seit das letzte Datenpaket dieses Kanals empfangen
worden ist („Time-out").
-
Gemäss der Erfindung
umfassen die Datenpakete der Abfolge 20 jeweils (komprimierte
oder nicht komprimierte) Daten von nur einem Kanal (oder Unterkanal)
und die Daten für
jeden Kanal werden getrennt gepuffert. Durch Zuweisen von jedem
Datenpaket der zweiten Abfolge 20 zu nur einem Kanal ist
es möglich,
eine einfache weise der Dekomprimierung auf der Empfangsseite (Ziel)
zu erreichen, wobei die Datenfelder d der Datenpakete der zweiten Abfolge 20 nicht
erst in Fragmente von getrennten Kanälen zu trennen sind. Darüber hinaus
ist es daher nicht notwendig, in den Datenfeldern d zusätzliche
Informationen in Bezug auf die Teile der Datenfelder einzupassen,
die zu einem bestimmten Kanal gehören, wie die Längeninformation
von Blöcken
innerhalb des Datenfeldes. Somit wird eine noch effizientere Übertragung
erreicht, da das Datenfeld eines Datenpakets der zweiten Abfolge
nur mit Daten gefüllt
werden kann. Darüber
hinaus ist es möglich, auch
nicht komprimierte Daten in einem Datenpaket der zweiten Abfolge
einzupassen, z.B. falls nur einer oder mehrere Kanäle (oder
Unterkanäle)
nicht komprimiert ist oder sind. Dies kann beispielsweise der Fall
sein, falls ein bestimmter Unterkanal Steuerdaten enthält.
-
Durch
das im wesentlichen getrennte Puffern von Daten von jedem Kanal
ist es möglich,
eine optimale Füllung
der Datenfelder d der zweiten Abfolge 20 zu erreichen.
Falls ein solches Puffern nicht stattfinden würde, würde die Komprimierung in einer
geringeren Menge von Daten pro Datenpaket resultieren, aber die
An zahl von Datenpaketen je Kanal würde im Prinzip gleich bleiben
und im Ergebnis würde sich
in den meisten Fällen
kein Vorteil herausstellen (wenn nicht die Datenpakete der zweiten
Abfolge eine kürzere
Länge als
die der ersten Abfolge haben, was jedoch eine Einschränkung der
zweiten Abfolge bedeutet). Durch das Mittel der oben genannten Kombination
von Massnahmen kann ein sehr grosser Grad an Effizienz der Datenübertragung
erreicht werden, ohne dass irgendwelche Anforderungen hinsichtlich
der Struktur der Datenpakete der zweiten Abfolge bestehen. Zur selben
Zeit wird ein grosser Grad an Flexibilität beim Weiterleiten geliefert,
da Zwischenstationen des Netzwerks, über die komprimierte Datenpakete
zu übertragen
sind, nicht irgendwelche Anforderungen zum Zwecke der Kompression
zu erfüllen
haben.
-
Es
ist festzuhalten, dass, wo dieser Text von einem „Datenpaket" spricht, dies auch
als Protokolldateneinheit („PDU"), Behälter oder
Dateneinheit allgemein verstanden werden kann. Es ist selbstverständlich,
dass die Datenpakete oder Dateneinheiten auch, ausser bezüglich eines
Kopffeldes und eines Datenfeldes, andere Felder wie ein Abschlussfeld (oder
Trailer) enthalten können.
Dies ist jedoch nicht wesentlich für die Erfindung. Die Erfindung
kann selbst auf Datenströme
angewandt werden, die nicht in Paketform vorliegen. Insbesondere
kann die Erfindung in vorteilhafter Weise bei der Komprimierung und
Dekomprimierung von Datenpaketen in Netzwerken angewandt werden,
die in Übereinstimmung
mit dem X.25-Protokoll arbeiten, insbesondere für Anwendungen auf der Schicht
3 des OSI-Modells.
-
In
der 2 ist das Verfahren gemäss der Erfindung in schematischer
Weise dargestellt. Die erste Abfolge 10 von Datenpaketen,
die in grösserem Detail
in der 1 dargestellt ist, wird in eine zweite Abfolge 20 von
Datenpaketen gewandelt. Bei dem Verfahren werden die Datenpakete 11 bis 15 der
ersten Abfolge 10 zuerst einem Prozess P unterworfen, der
ein geeignetes Datenkompressionsverfahren umfassen kann, das als
solches bekannt ist, wie beispielsweise ein Datenkompressionsverfahren,
welches gemäss
dem Ziv-Lempel-Verfahren arbeitet. In dem oben genannten Fall umfasst
das Verfahren P auch eine Kanalidentifikation. Die komprimierten
Daten werden gepuffert, insbesondere getrennt für jeden Kanal. Die komprimierten
Daten der Datenpakete 11, 12 und 14 werden
daher in kontinuierlicher Weise gepuffert, bis ein Datenfeld der
zweiten Abfolge in seiner Gesamtheit gefüllt ist. In dem dargestellten
Fall wären
die komprimierten Daten der Datenpakete 11 und 12 fähig, beispielsweise
das Datenpaket 21 vollständig zu füllen, wonach das besagte Datenpaket übertragen
werden kann. Jegliche verbleibende komprimierte Daten des Kanals
A werden in dem Puffer des Kanals A („Puffer A") gespeichert. Dann werden die Daten
des Pakets 13 komprimiert und in den Puffer des Kanals
B gespeichert („Puffer
B") (unter der Annahme,
dass diese Daten nicht in der Gesamtheit ein Datenpaket der zweiten
Abfolge füllen). Das
nächste
zu komprimierende Paket, das Datenpaket 14, ist das letzte
Paket der Gruppe, welche aus den Paketen 11, 12 und 14 besteht.
Nach der Komprimierung werden die komprimierten Daten des Kanals
A in temporärer
Weise in dem Puffer des Kanals A gespeichert, wonach der Puffer
geleert wird und die komprimierten Daten des Kanals A in dem Paket 22 gespeichert
werden. Falls das Paket 22 nicht in seiner Gesamtheit gefüllt ist,
können
Endinformationen hinzugefügt
werden. Es ist vorzugsweise im Kopfteil des Datenpaketes 22 angegeben,
dass dies das letzte Paket einer Gruppe ist. Das Paket 15 kann
in der Zwischenzeit einem Komprimierungsprozess ausgesetzt worden
sein. Wie es im Falle des Kanals A war, werden die komprimierten
Daten für
eine kurze Zeit in dem betreffenden Puffer gespeichert, in diesem
Fall im Puffer des Kanals B, um dann zusammen mit den in dem Puffer
bereits vorliegenden Daten in dem Datenpaket 23 angeordnet
zu werden. Es wird vorzugsweise im Kopfteil des Datenpakets 23 angegeben, dass
dies das letzte Datenpaket einer Gruppe (beziehungsweise eines Kanals)
ist. Falls erforderlich kann das Datenfeld des Datenpakets 23,
wie es auch schon für
das Datenpaket 22 der Fall gewesen ist, mit Abschlussinformationen
(Trailerdaten) versehen werden.
-
Es
ist wohlverstanden, dass die Pufferaktionen der Puffer, die hier
erwähnt
worden sind, in vielerlei Hinsicht realisiert werden können, und
dass bei mehr als zwei Kanälen
eine Vielzahl von Puffern vorgesehen sein können, wie dies in der Figur
durch die gestrichelten Linien angegeben ist (optionaler Puffer C
für den
Kanal C). Falls das letzte Datenpaket eines bestimmten Kanals übertragen
worden ist, kann der Puffer dieses Kanals, falls erforderlich, einem
anderen Kanal zugewiesen werden. So kann beispielsweise, falls der
Kanal B beendet ist, der Puffer B einem neuen Kanal, z.B. dem Kanal
C oder D zugewiesen werden.
-
Wie
oben beschrieben kann die Zeit, die Daten in einem Puffer verweilen,
in vielen Fällen
sehr kurz sein. Die Funktion der Puffer ist hauptsächlich diejenige,
die Daten eines bestimmten Kanals zu sammeln, in solch einer Weise,
dass die Pakete der zweiten Abfolge so effizient wie möglich eingesetzt werden
können.
-
Das
Dekomprimieren gemäss
der Erfindung umfasst das Empfangen (Übertragen) von Datenpaketen,
das Unterwerfen der Datenfelder in diesen Übertragungsdatenpaketen in
einem Dekomprimierungsverfahren und Ausbilden von (Ziel-)Datenpaketen,
die in ihren Datenfeldern die dekomprimierten Daten enthalten. Da
keine Rekonstruktionsinformation benötigt wird, die aus den Datenfeldern
herauszuziehen ist, kann die Dekomprimierung und das Ausbilden der
Zieldatenpakete direkt stattfinden. Vorzugsweise findet das Dekomprimieren
in einer Weise statt, die analog zu dem Kompri mierungsverfahren ist,
welches in der 2 dargestellt ist.
-
In
der 3 wird das Verfahren der Erfindung in schematischer
Weise in Bezug auf das OSI-Modell gezeigt (siehe Druckschrift 3,
Kapitel 12). wenn gemäss
dem OSI-Modell zwischen zwei Schichten (n, n-1) eines Kommunikationsnetzwerkes kommuniziert
wird, findet zwischen diesen Schichten eine Übertragung von sogenannten
Primitiven statt, die auch als Schnittstellendateneinheiten (IDU
für Interface
Data Units) bekannt sind. Die Primitiven einer Schicht n werden
in der Schicht n-1 behandelt, d.h. in einer unteren Schicht. Die
Primitiven der Schicht n werden durch die Schicht n-1 in eine oder
mehrere Protokolldateneinheiten (PDU) übertragen, die dann die „virtuelle" Kommunikation zwischen
der Schicht n-1 der sendenden Seite und der Schicht n-1 der empfangenden
Seite bilden. Zum Beispiel sind für die Schicht 3 des X.25-Protokolls
dieses die Pakete des sogenannten Paketniveauprotokolls.
-
In
den meisten Fällen
werden die Datenpakete A1, A2,
..., Ax über
ein Zwischennetzwerk der Schicht n-1 der Empfangsseite zugestellt.
Falls jedoch in einer Schicht n-1 eine Verarbeitung der Daten stattfindet,
wie Datenkomprimierung oder -dekomprimierung, sollte die Struktur
der Dateneinheiten (d.h. die Datenpakete oder PDU's), die für die Übertragung
der Primitiven notwendig sind, durch diese Verarbeitung nicht beeinträchtigt werden.
Es ist festzustellen, dass die Länge
der Daten in einer Primitiven wesentlich grösser sein kann, als die maximale
Länge einer
Dateneinheit, wobei die Länge
einer Dateneinheit häufig
durch das betreffende Netzwerk vorgegeben ist.
-
In
der 3 wird eine Primitive A dargestellt, die von der
Schicht n in die Schicht n-1 auf der Sendeseite übergeht, was durch ein S bezeichnet
ist. Die Primitive A stellt eine Abfolge von Datenpaketen oder Daten
dar, die aus höheren
Schichten der Sendeseite stammen. Bei der Schicht n-1 ergibt die
Primitive A eine erste Abfolge von Datenpaketen A1,
A2, ..., Ax, wobei
diese Abfolge der Abfolge 10 in den 1 und 2 entspricht.
Die Abfolge wird einem Verfahren P unterworfen, wie einem Datenkomprimierungsverfahren
oder im Allgemeinen einem Kodierverfahren. Wie in der 3 dargestellt,
findet dieses Verfahren in der Schicht n-1 statt. Als Ergebnis des
Verfahrens P wird eine zweite Abfolge von Datenpaketen B1, B2, ..., By erzeugt, wobei diese zweite Abfolge der
Abfolge 20 in den 1 und 2 entspricht.
Im Fall der Datenkomprimierung wird die Anzahl der Datenpakete der
zweiten Abfolge kleiner sein, als diejenige der ersten Abfolge:
y < x. Die zweite
Abfolge 20 wird über ein
Netzwerk übertragen
(welches aus Gründen
der Klarheit nicht dargestellt worden ist). Wie dargestellt, findet
die Übertragung
der Abfolge 20 über
ein Netzwerk in der Schicht n-1 statt, kann aber auch andere (untere)
Schichten aufweisen und umfassen, wie die Schicht n-2.
-
Auf
der Empfangsseite, welche mit dem Buchstaben R bezeichnet wird,
werden die vorausgegangenen Schritte im wesentlichen umgekehrt. Zuerst
wird die Abfolge der Datenpakete B1, B2, ..., By dem Verfahren
P' unterworfen,
wobei das Verfahren P' in
den meisten Fällen
das inverse Verfahren des Prozesses P auf der Sendeseite ist, d.h.
die Datendekomprimierung, wenn der Schritt P Datenkomprimierung
umfasste. Als Ergebnis davon wird eine dritte Abfolge 30 erzeugt,
wobei diese dritte Abfolge 30 in den meisten Fällen gleich
und äquivalent
zu der Abfolge 10 ist und die Datenpakete A1,
A2, ..., Ax umfasst.
Diese Datenpakete der Schicht n-1 werden nachfolgend als eine Primitive
durchgelassen, die wiederum durch A gekennzeichnet ist und zu einer nächst höheren Schicht
(n) der Empfangsseite R übergeht.
Die Primitive A kann bei Notwendigkeit zu noch höheren Schichten übertragen
wer den.
-
Wie
das Beispiel in der 3 zeigt, werden Datenpakete
eines ersten Formats (A1, A2,
..., Ax) verarbeitet (P), als Datenpakete
eines zweiten Formates (B1, B2,
..., By) übertragen und bei der Schicht
n-1 wieder verarbeitet (P').
Bei diesem Beispiel sind die originalen und die sich ergebenden
Datenpakete identisch, wie auch die entsprechenden Primitiven. Das Verfahren
gemäss
der Erfindung liefert daher eine Längenkonversion von Primitiven
einer gewissen Schicht (n) bei einer tieferen Schicht (n-1). Wie
unter Bezugnahme auf die 2 beschrieben worden ist, werden
bei diesem Verfahren die funktionalen Beziehungen der Primitiven
beibehalten durch Zuweisen der Datenpakete der zweiten Abfolge (B1, B2, ..., By) auf nur einen Kanal oder Unterkanal. Die
besagten funktionalen Beziehungen können beispielsweise die (Unter)
Kanalidentität
und/oder Benutzeridentität
der Primitiven umfassen. Wie oben beschrieben, ist ein Unterkanal
ein ausbildender Bestandteil eines Kanals, d.h. alle X.25-Datenpakete
eines bestimmten Kanals, die ein Q-Bit mit dem Wert 1 haben, bilden
einen Unterkanal dieses besagten Kanals.
-
Bei
der Schicht n-1 wird die Struktur der Primitiven durch den Hinweis „Ende der
Nachricht" vorgegeben.
Bei dem X.25-Protokoll ist solch ein Marker durch ein m-Bit gebildet,
welches gleich Null ist. Dieses Prinzip kann beispielsweise auch
bei ISDN-basierten
Netzwerken angewandt werden. Im Falle von ISDN kann die weiterleitende
Schicht durch ein gewähltes
Weiterleitungsprotokoll realisiert sein, z.B. die Schicht 3 von
X.25. Im Falle von ATM wird der Marker „Ende der Nachricht" durch sogenannte
Segmenttypfelder oder „ST-Felder" (siehe Druckschrift
5) gebildet. Dies weist auf den Zusammenhang zwischen Dateneinheiten
(sogenannte SAR PDU's)
und Primitiven (sogenannte SAR SDU's) hin. Das Ignorieren der „Ende der
Nachricht", um einen
höheren Kompressionsfaktor
zu erhalten, wird von ATM in dem ST-Feld durch die sogenannte Einzelsegmentnachricht
(SSM für
Single Segment Message) gestützt.
-
Vorzugsweise
ist die n-1-Schicht, die in dem Beispiel der 3 genannt
worden ist, die Schicht drei des OSI-Modells (n = 4). Die Schicht
n-1 kann jedoch auch auf andere Niveaus des OSI-Modells hinweisen, wie die Schichten
2 oder 4. Das Verfahren gemäss
der Erfindung kann auf alle Kommunikationstechniken angewandt werden,
die auf dem OSI-Modell arbeiten. Vorzugsweise findet die Verarbeitung
inner- oder oberhalb der Weiterleitungsschichten statt, um die Unabhängigkeit
von der Weiterleitung beizubehalten.
-
Das
Verfahren gemäss
der Erfindung, wenn es auf die Schicht 3 des OSI-Modells angewandt wird,
weist den zusätzlichen
Vorteil auf, dass die Datenkomprimierung bei derselben Schicht wie
der Tarifierung stattfinden kann. Wenn in der Schicht 2 komprimiert
wird, wird die Benutzerlast nicht durch die Datenkomprimierung vermindert.
Ein weiterer Vorteil des Anwendens der Erfindung bei der Schicht
3 ist die Möglichkeit
der hohen Datenkomprimierung, da in der Schicht 2 die Kombination
von Informationsquellen stattfindet, was zu einer geringen Redundanz der
Daten führt.
Aufgrund dieser speziellen Kombination wird ein adaptiver Komprimierungsalgorithmus nicht
fähig sein,
eine optimale Komprimierung zu erhalten, da die zu komprimierenden
Daten unterschiedliche Charakteristika aufweisen. Mit der Erfindung
ist es jedoch möglich,
trotzdem eine hohe Komprimierungsrate zu erhalten, da die Komprimierung
in einer höheren
Schicht des OSI-Modells stattfindet und wobei die Daten der verschiedenen
Quellen getrennt verarbeitet werden können.
-
Die
Vorrichtung 100, die in schematischer Weise in der 4 dargestellt
ist, umfasst eine Identifikationseinheit 110, eine Steuereinheit 120,
eine Verarbeitungseinheit 130, die über einen Datenbus 140 mit
einem Speicher 150 verbunden ist, und eine Puffereinheit 160.
Die Identifikationseinheit 110 umfasst einen Eingangspuffer
und hiermit verbunden Identifikationsmittel zum Identifizieren (des
Kanals von) einlaufenden Datenpaketen. Die Identifikation wird an
die Steuereinheit 120 übergeben,
die daraufhin die Verarbeitungseinheit 130 und den Speicher 150 in
einer kanalbezogenen Weise adressiert. So kann der Speicher 150 in
sich verschiedene Komprimierungsverfahren gespeichert haben, die
für verschiedene
Kanäle
ausgewählt
werden können.
Dekomprimierungsverfahren können
in gleicher Weise in dem Speicher 150 gespeichert werden,
so dass die Vorrichtung 100 auch für die Dekomprimierung eingesetzt
werden kann; falls erforderlich, ist die Vorrichtung 100 auch
fähig,
einige Kanäle
zu komprimieren und andere Kanäle
zu dekomprimieren. Bei dieser Vorgehensweise kann ein Dekomprimierungsverfahren,
oder die Rekonstruktion von Daten, die für dieses Verfahren erforderlich
sind, übertragen
werden, wenn ein Kanal aufgesetzt wird, bevor Datenpakete zu dekomprimieren
sind. Es ist auch möglich,
dass der Speicher 150 so ausgebildet ist, vollständig oder in
Teilen, dass es ein Nur-Lese-Speicher
ist (ROM), so dass gewisse Daten (sowohl Rekonstruktionsdaten für den Nutzen
von Dekomprimierungsprozessen als auch einer oder mehrere Dekomprimierungsprozesse
selber) permanent in der Vorrichtung 100 auftreten. Selbst,
wenn die Vorrichtung 100 als Komprimierungsvorrichtung
eingesetzt wird, kann es vorteilhaft sein, gewisse Daten in einem
Nur-Lese-Speicher zu speichern.
-
Der
für einen
bestimmten Kanal erforderliche Prozess wird unter der Steuerung
der Steuereinheit 120 über
den Datenbus 140 aus dem Speicher 150 in die Verarbeitungseinheit 130 geladen.
Die Verarbeitungseinheit 130 umfasst vorzugsweise einen
Mikroprozessor zur Durchführung
des Verarbeitungsverfahrens. Vorzugsweise ist die Verarbeitungseinheit 130 mit
einem Prozessorspeicher versehen, um Daten in Bezug auf den vorliegenden
Fall zu speichern. Die Aufgabe des Prozessorspeichers kann jedoch auch
von dem Speicher 150 durchgeführt werden. Um die Verarbeitungsgeschwindigkeit
der Vorrichtung 100 zu erhöhen, können an dem Datenbus 140 eine
Vielzahl von parallelen Verarbeitungseinheiten 130 angeschlossen
sein. Alternativ dazu könnte
eine Vielzahl von (Mikro-)Prozessoren jeweils mit einem Prozessorspeicher
versehen sein und könnte
falls notwendig, in einer Prozessoreinheit 130 angeordnet sein.
-
Die
Puffereinheit 160 umfasst einen Ausgangspuffer 161,
der zum Nutzen der entsprechenden Kanälen gemäss der Erfindung aus einer
Vielzahl von Pufferabschnitten A, B C etc. zusammengesetzt ist.
Wie bereits oben erwähnt,
muss die Zuweisung von Puffern zu bestimmten Kanälen nicht festgelegt sein und
kann, falls erforderlich, je nach den Umständen geändert werden. Somit kann der
Pufferabschnitt A in der 4, nachdem der Kanal A beendet
ist, beispielsweise für
einen (neuen) Kanal H zugewiesen werden.
-
Jeder
Pufferabschnitt A, B, etc. des Ausgangspuffers 161 enthält bevorzugt
ein (Verschiebe-)Register, könnte
aber auch durch einen Direktzugriffsspeicher (RAM) ausgebildet sein.
Ein zusätzlicher
Speicherabschnitt BP („Bit-Hinweiser" für „Bit Pointer") wird vorgesehen,
um Informationen zu speichern, die auf die Menge an Daten hinweist,
insbesondere wie viele Bits und/oder Bytes jeweils in jedem der
anderen Pufferteile gespeichert sind beziehungsweise dort verbleiben,
nachdem das letzte zu übertragende
Datenpaket gefüllt
worden ist. Falls erforderlich, kann der Pufferabschnitt BP durch
getrennte, reservierte Abschnitte der Pufferabschnitte A, B, etc.
ausgebildet sein.
-
Die
Puffereinheit 160 umfasst weiterhin eine Auswahleinheit 162,
die beispielsweise durch einen Multiplexer ausgebildet ist, um einen
Pufferabschnitt auszuwählen,
in dem Daten, die in die Puffereinheit 160 eintreten, gespeichert
werden müssen.
Diese Auswahl findet in dem dargestellten Beispiel auf der Basis
von Steuersignalen statt, die durch die Steuereinheit 120 auf
der Basis der Identifikationsinformation erzeugt worden sind. Die
Puffereinheit 160 könnte auch
(hier nicht dargestellte) Mittel umfassen, um geeignete Datenpakete
zu erzeugen, die beispielsweise eine Länge von 128 Bits aufweisen,
in denen die Daten von den Pufferabschnitten übermittelt werden.
-
Mit
der Hilfe der Vorrichtung 100 gemäss der Erfindung ist eine schnelle
und effiziente Komprimierung einer Abfolge von Datenpaketen möglich. Der Grad
der Effizienz kann in diesem Zusammenhang zusätzlich davon abhängen, ob
Stoppcodes oder andere Markierungen (so wie das m-Bit), die auf
das Ende einer Gruppe von Datenpaketen hinweisen (Nachricht, Kanal),
auftreten. Vorzugsweise ist die Vorrichtung 100 so ausgestaltet,
dass das Abzählen von
Stoppcodes und ähnlichem
einstellbar ist. Dies macht es möglich,
die Arbeitsweise der Vorrichtung an die mit der Vorrichtung verbundenen
Ausrüstung anzupassen.
-
In
einer ersten Arbeitsweise nimmt die Vorrichtung das Ende einer Gruppe
von Datenpaketen überhaupt
nicht wahr, so dass die Daten für
jeden Kanal gepuffert werden, selbst wenn eine Nachricht vollständig ist.
Dies ermöglicht
den höchsten
Grad an Füllung
von Datenpaketen der zweiten Abfolge, da es nicht notwendig ist,
am Ende jeder Gruppe ein Datenpaket zu übertragen, welches (in den
meisten Fällen) teilweise
leer ist oder mit Abschlussdaten versehen ist. Um zu gewährleisten,
dass die zuletzt im Puffer gespeicherten Daten gesendet werden,
kann ein Zeitablaufme chanismus vorgesehen sein, der beispielsweise
dazu führt,
dass die Steuereinheit 120 den Puffer eines bestimmten
Kanals leert und dazu führt,
dass ein Datenpaket von diesem Kanal auszusenden ist, falls während eines
gewissen Zeitraumes kein Datenpaket dieses Kanals in der Vorrichtung 100 empfangen
worden ist. Dieses Leeren eines Puffers kann auch zu bestimmten
Zeiten stattfinden, oder falls das Ziel eine Anforderung in diesem
Zusammenhang an die Vorrichtung 100 schickt. Solch eine
Anforderung kann die Gestalt eines speziellen Codes in den Daten
eines Datenpaketes annehmen, das an die Vorrichtung 100 übermittelt
wird.
-
In
einer zweiten Arbeitsweise wird in gleicher Weise das Ende einer
Gruppe von Datenpaketen nicht berücksichtigt, aber ein Paket
der zweiten Abfolge wird gesandt, sobald ein Datenpaket der ersten Abfolge
verarbeitet ist. Während
dies gewährleistet, dass
die Daten so schnell wie möglich übertragen werden,
ist der nutzbare Effekt der Datenkomprimierung sehr klein, da im
Allgemeinen nur teilweise gefüllte
Datenpakete ausgebildet werden. Falls die Datenpakete der zweiten
Abfolge kleiner sind als diejenigen der ersten Abfolge, wird die
Datenkompression immer zu einer Verbesserung der Effizient der Datenübertragung
führen,
selbst wenn jedes Datenpaket einer ersten Serie in ein Datenpaket
der zweiten Serie gewandelt wird (1-zu-1 Wandlung). Im Falle von X.25
können
Datenpakete der zweiten Abfolge dann aus weniger Segmenten bestehen
(von beispielsweise 64 Bytes).
-
In
einer dritten Arbeitsweise werden tatsächlich Stoppcodes oder andere
Hinweise, dass das Ende einer Nachricht oder eines Kanals erreicht
worden ist, betrachtet. Falls das letzte Datenpaket einer Nachricht
oder eines Kanals identifiziert worden ist, wird der betreffende
Puffer geleert. So wird eine schnelle Datenübertragung zu allen Zeiten
möglich sein,
während
die Ausbildung von nur teilweise gefüllten Datenpaketen in nicht
unbeträchtlicher Weise eingeschränkt wird.
-
Es
ist festzustellen, dass es in manchen Systemen zur Übertragung
von Datenpaketen möglich sein
kann, zwischen dem Ende einer Nachricht und dem Ende des Kanals
zu unterscheiden, z.B. bei der Übertragung
am Ende des Kanals durch einen speziellen Code oder ein spezielles
Datenpaket. In diesem Fall ist es vorteilhaft, die Puffer am Ende
einer Nachricht zu leeren, dies aber nicht am Ende eines Kanals zu
tun.
-
Das
Leeren der Puffer umfasst in diesem Zusammenhang das Übertragen
der in den Puffern verbleibenden Information. Wenn das Ende eines
Kanals eintritt, können
die Puffer „geleert" werden, d.h. zurückgesetzt
werden, ohne dass die verbleibende Information übertragen wird. In beiden Fällen sind
die Puffer am Ende schlussendlich leer. Das „Ende eines Kanals" kann auftreten,
wenn ein logischer Kanal unterbrochen wird (z.B. „unterbrochen" für „disconnect" in X.25) und wenn
in dem Netzwerk ein Fehlerhinweis auftritt (z.B, ein „Paket
zurücksetzen" für „Reset Packet" in X.25), was darauf
hinweist, dass es unsicher ist, ob die übermittelten Daten ihr Ziel
erreicht haben.
-
Die
in der 5 schematisch dargestellte Vorrichtung 200 umfasst
wie die Vorrichtung 100 aus der 4 eine Identifikationseinheit 210,
eine Steuereinheit 220, eine Verarbeitungseinheit 230,
die über
einen Datenbus 240 mit einem Speicher 250 verbunden
ist, und eine Puffereinheit 260. Die Identifikationseinheit 210 umfasst
einen Eingangspuffer und hiermit verbunden Identifikationsmittel
zum Identifizieren (des Kanals und/oder Unterkanals) von einlaufenden
Datenpaketen.
-
In
der Vorrichtung 200 umfasst die Puffereinheit 260 einen
Ausgangspuffer 261, der gemäss der Erfindung aus einer
Vielzahl von Pufferabschnitten A, B C etc. zum Nutzen der entsprechenden
Kanäle
besteht. Im Gegensatz zum Ausgangspuffer 161 umfasst der
Ausgangspuffer 261 der 5 Pufferabschnitte,
die doppelt ausgelegt sind, d.h. jeder Pufferabschnitt umfasst zwei
weitere Abschnitte oder Teile, wobei jedes Teil einem bestimmten
Unterkanal zugewiesen ist. So bestehen für den Kanal A die Abteile A
und A'. In gleicher
Weise sind die Abteile B und B' für den Kanal
B vorgesehen. In dem gegebenen Beispiel können die Daten von zwei Unterkanälen für jeden
Kanal gepuffert werden. Es ist wohlverstanden, dass die Pufferabschnitte
aus einer Vielzahl von Abteilen bestehen können, z.B. drei, vier oder
fünf, um eine
Vielzahl von Unterkanälen
für jeden
Kanal zu unterstützen.
Der zusätzliche
Pufferabschnitt BP („Bit-Zeiger" für „Bit Pointer") braucht nicht mehrfach realisiert
sein, sofern vorgesehen ist, dass er von ausreichender Grösse ist,
um die Zustände
von allen Pufferabschnitten zu registrieren. Der Pufferabschnitt BP
kann auch aus hierfür
reservierten Teilen der Pufferabschnitte A, A', B, B', usw. bestehen.
-
Anstelle
des Vorsehens innerhalb eines Puffers 261 von Pufferabschnitten
mit vielfachen Abteilen, kann der Puffer 261 auch als ganzes
doppelt oder dreifach implementiert werden, wobei die Puffereinheit 260 somit
Puffer 261, 261' etc.
entsprechend der bestehenden Notwendigkeit umfasst. Alternativ kann
die gesamte Puffereinheit 260 in mehrfacher Form vorhanden
sein.
-
Wie
bereits oben erwähnt,
braucht die Zuweisung von Puffern oder Pufferabschnitten zu bestimmten
Kanälen
oder Unterkanälen
nicht fix sein, sondern kann, falls erforderlich, entsprechend den Umständen geändert werden.
So kann der Pufferabschnitt A in der 5, nachdem
die Unterkanäle
A und A' beendet
worden sind, beispielsweise einem (neuen) Kanal H zugewiesen werden.
-
Die
Puffereinheit 260 umfasst eine Auswahleinheit 262,
die zusätzlich
zu den Funktionen der Auswahleinheit 161 der Puffereinheit 160 eine
Auswahl, basierend auf den Unterkanälen ausführt, d.h. die Auswahleinheit 262 weist
Daten Pufferabschnitten zu, basierend sowohl auf ihren Kanal- als
auch auf ihren Unterkanalidentifizierungen. Abgesehen von der Puffereinheit 260 kann
die Vorrichtung 200 funktionell und konstruktiv gleich
zur Vorrichtung 100 der 4 ausgestaltet
sein. Dennoch sind die Verarbeitungseinheit 230 und die
Steuereinheit 250 vorzugsweise ausgestaltet, um Daten in
Abhängigkeit von
ihrer jeweiligen Unterkanal-Identifikation zu verarbeiten. Die Identifikationseinheit 210 ist
in gleicher Weise angeordnet, um Unterkanäle zu identifizieren.
-
Die
Vorrichtung 100 der 4 und die
Vorrichtung 200 der 5 können aus
kommerziell erhältlichen
Komponenten hergestellt werden (siehe Druckschrift 6). Vorzugsweise
kann die Vorrichtung auch als anwender-spezifischer integrierter
Schaltkreis (ASIC) ausgeführt
sein. Um in einer Vorrichtung sowohl die Komprimierung als auch
die Dekomprimierung für
bidirektionalen Verkehr zu liefern, können zwei Vorrichtungen 100 zusammen
in einem Gehäuse
angeordnet oder alternativ vollständig integriert sein.
-
Das
System der 6 umfasst Komprimierungs- und
Dekomprimierungs-Vorrichtungen 2, die über ein Netzwerk 1 verbunden
sind. In diesem Zusammenhang und Anordnung können die Vorrichtungen 2 beispielsweise
zwei Vorrichtungen 100 oder 200 der 4 beziehungsweise 5 aufweisen.
Das Netzwerk 1 kann ein Kommunikations-Netzwerk sein, das als solches bekannt
ist, wie ein Netzwerk, welches mit dem X.25-Protokoll arbeitet.
Eine Vorrichtung 2 kann eine Vielzahl von Einheiten 3 aufweisen,
die mit ihr verbunden sind, die jeweils Multiplexer umfassen können. Falls
erforderlich, können
diese Einheiten 3 auch keine Datenpakete aussenden, sondern
Datenströme,
die nur in den Vorrichtungen 2 in Datenpaketen ausgebildet
werden. Die Vorrichtungen 3 können mit sich und einer Vielzahl
von Endbenutzern 4 verbunden sein. Zwischen den Endbenutzern 4 können eine
Vielzahl von (logischen) Kanälen aufgesetzt
sein. Durch das Anwenden der Erfindung können die Daten von diesen Kanälen zu jeder
Zeit in effizienter Weise in komprimierter Form über das Netzwerk versandt werden.