-
Die Erfindung betrifft die Realisierung eines unidirektionalen Datenverkehrs. Insbesondere betrifft die Erfindung ein mit erhöhter Wahrscheinlichkeit korrektes Übermitteln von Daten bei unidirektionalem Datenverkehr.
-
Ein erstes Datenverarbeitungssystem kann beispielsweise gegen einen Angriff von außen geschützt werden, indem eingehende Datenverbindungen unterbunden werden. Gelegentlich kann es erforderlich sein, Daten an ein zweites Verarbeitungssystem zu übermitteln, beispielsweise wenn Backup- oder Log-Dateien ausgelagert werden sollen. Während der Übertragung von Daten über einen Kommunikationskanal zwischen den Verarbeitungssystemen können sich jedoch Fehler in die übertragenen Daten einschleichen, sodass die Daten empfängerseitig unbrauchbar sein können.
-
Wegen der unidirektionalen Übermittlung hat das Datenverarbeitungssystem keine Kenntnis darüber, ob ein Transfer erfolgreich war oder nicht. Zur Erhöhung der Wahrscheinlichkeit einer erfolgreichen Übertragung können die Daten mehrfach übertragen werden. Dies erfordert jedoch viel Bandbreite oder eine lange Übertragungsdauer.
-
Ein übliches Übertragungsverfahren für Daten über einen Kommunikationskanal verwendet eine Rückwärts-Fehlerkorrektur. Die Daten werden in Pakete unterteilt und einzeln übertragen. Jedes Paket kann mit einer Prüfsumme versehen werden, anhand derer der Empfänger einen Übertragungsfehler detektieren kann. In diesem Fall meldet er das betroffene Paket an den Sender und dieser übermittelt das Paket erneut. Ist die Kommunikation vom Empfänger zum Sender nicht möglich, so kann ein solches Übertragungsverfahren nicht verwendet werden.
-
Eine der vorliegenden Erfindung zu Grunde liegende Aufgabe besteht in der Angabe einer verbesserten Technik, mit der Daten von einem Sender an einen Empfänger über einen Kommunikationskanal auch dann mit erhöhter Wahrscheinlichkeit korrekt übertragen werden können, wenn der Kommunikationskanal fehlerbehaftet ist und über ihn übermittelte Daten mit einer gewissen Wahrscheinlichkeit verändert werden können. Die Erfindung löst diese Aufgabe mittels der Gegenstände der unabhängigen Ansprüche. Unteransprüche geben bevorzugte Ausführungsformen wieder.
-
Dazu wird vorgeschlagen, zur Übermittlung mehrere unidirektionale Kanäle zu verwenden und die Daten auf die Kanäle in einer vorbestimmten Weise zu verteilen.
-
Ein erstes Verfahren zum unidirektionalen Datentransfer von Daten von einem Sender an einen Empfänger umfasst Schritte des Demultiplexens der Daten in mehrere Datenströme; des Codierens der Datenströme jeweils mittels einer Vorwärts-Fehlerschutz-Codierung; des Versendens der Datenströme über zugeordnete Kommunikationskanäle vom Sender an den Empfänger; des Korrigierens eines möglichen Fehlers in einem der empfangenen Datenströme auf der Basis der Vorwärts-Fehlerschutz-Codierung; des Entfernens der Vorwärts-Fehlerschutz-Codierung aus den Daten; und des Multiplexens der Daten.
-
Erfindungsgemäß kann eine Vorwärts-Fehlerkorrektur mit einer Übertragung über mehrere Kommunikationskanäle kombiniert werden, um eine mit erhöhter Wahrscheinlichkeit korrekte und angemessen effiziente Übermittlung der Daten zu realisieren. Dabei können unterschiedliche Kanäle unterschiedliche Eigenschaften aufweisen und insbesondere unterschiedliche Übertragungsgeschwindigkeiten unterstützen. Im Gegensatz zur Mehrfach-Übertragung der kompletten Daten kann eine erhebliche Übertragungskapazität eingespart werden.
-
Die Vorwärts-Fehlerschutz-Codierung eines Datenstroms kann eine ausreichende Menge redundanter Information beisteuern um eine Verfälschung der Daten während der Übermittlung nicht nur zu erkennen, sondern auch zu beheben. Üblicherweise kann die Menge der durch die Vorwärts-Fehlerschutz-Codierung eingestreuten Informationen gesteuert werden, wobei die Anzahl von korrigierbaren Fehlern in den übertragenen Daten mit der Menge der redundanten Informationen ansteigen kann. Üblicherweise kann die Fehlerkorrektur derart durchgeführt werden, dass auch bestimmt wird, ob die Fehlerbehebung erfolgreich war oder nicht. Insbesondere kann bestimmt werden, wenn mehr Fehler in den Daten vorliegen als behoben werden können. Das Verfahren kann über eine Anzahl Kanäle und/oder die Wahl oder Parametrierung einer zugeordneten Vorwärts-Fehlerschutz-Codierung gut skalierbar sein. Die Wahrscheinlichkeit einer erfolgreichen, also unverfälschten Übermittlung kann auf der Basis der redundanten Informationen und Übertragungsparametern bestimmt werden. Beispielsweise kann bestimmt werden, dass ein Ein-Bit-Fehler durchschnittlich alle 100 Jahre und ein Zwei-Bit-Fehler durchschnittlich alle 500 Jahre auftritt. Für bestimmte Anwendungen, etwa die Übermittlung von Logs, kann dies als „sichere Übermittlung“ akzeptiert werden.
-
Entsprechend werden auf Empfängerseite auch mehrere Decodierer in umgekehrter Reihenfolge parallel oder seriell betrieben. Als Besonderheit tauschen diese Decodierer untereinander statistische Informationen zur Fehlerkorrektur aus und führen den Decodierungsprozess iterativ aus, wodurch sich für einen vergleichsweise geringen algorithmischen Aufwand eine sehr leistungsstarke Fehlerkorrektur ergibt. Zwar ist die Anzahl der Decodierer gleich der Anzahl der Codierer, die Anzahl der Iterationen beim Decodierungsprozess im Regelfall aber größer als die Anzahl der Decodierer.
-
In einer Ausführungsform wird wenigstens einer der Datenströme mit einer Vorwärts-Fehlerschutz-Codierung in Abhängigkeit eines ihm zugeordneten Kommunikationskanals codiert. So können Kommunikationskanäle mit unterschiedlichen Störungswahrscheinlichkeiten verbessert unterstützt werden. Ein Hinzufügen von mehr redundanter Information als für den Kommunikationskanal angemessen ist, kann vermieden werden.
-
Ein zweites Verfahren zum unidirektionalen Datentransfer von Daten von einem Sender an einen Empfänger umfasst Schritte des Codierens der Daten mittels einer Vorwärts-Fehlerschutz-Codierung; des Demultiplexens der Daten in mehrere Datenströme; des Versendens der Datenströme über zugeordnete Kommunikationskanäle vom Sender an den Empfänger; des Multiplexens der Daten seitens des Empfängers; des Korrigierens eines möglichen Fehlers in den empfangenen Daten auf der Basis der Vorwärts-Fehlerschutz-Codierung; und des Entfernens der Vorwärts-Fehlerschutz-Codierung aus den Daten.
-
Im Unterschied zum oben angegebenen ersten Verfahren erfolgt hier das Codieren vor dem Demultiplexen. Insbesondere wenn davon ausgegangen werden kann, dass die Kommunikationskanäle ähnliche Störungswahrscheinlichkeiten aufweisen, können auftretende Fehler verbessert korrigiert werden. Merkmale oder Vorteile können zwischen den Verfahren übertragen werden.
-
Die Datenströme können beispielsweise mittels UDP (User Datagram Protocol) versandt werden. Dazu können die Daten in Blöcke unterteilt werden, die mittels UDP transportierbar sind. Eine Fragmentierung über mehrere UDP-Pakete kann erfolgen. UDP ist als unbestätigtes Übertragungsprotokoll weit verbreitet, sodass bei der Wahl von Netzwerkkomponenten eine vergrößerte Auswahl bestehen kann. Außerdem kann die Übertragung über ein bestehendes, möglicherweise auch öffentliches Netzwerk erfolgen. UDP ist im RFC768 beschrieben eine Variante UDP-Lite im RFC3828. Praktisch kann auch jedes andere unidirektionale Protokoll verwendet werden.
-
Die Vorwärts-Fehlerschutz-Codierung kann in Abhängigkeit einer Art zu übermittelnder Daten gewählt sein. So können Textdaten, die beispielsweise als Logs anfallen können, mit einer anderen Vorwärts-Fehlerschutz-Codierung abgesichert werden als ein Videodatenstrom, oder Binärdaten eines ausführbaren Programms. Bestimmte Muster wie eine Verteilung von digitalen Zeichen oder eine Wiederholung von Bitsequenzen kann dabei speziell berücksichtigt werden. Die Art der Daten kann automatisch bestimmt werden oder als Parameter vorgegeben sein.
-
Die Vorwärts-Fehlerschutz-Codierung kann auch in Abhängigkeit einer Übermittlungszeit und/oder Übermittlungsdauer gewählt sein. Ist beispielsweise bekannt, dass zu bestimmten Uhrzeiten mit einem niedrigeren Datendurchsatz und/oder einer höheren Wahrscheinlichkeit von Bitfehlern zu rechnen ist, so kann die Vorwärts-Fehlerschutz-Codierung in diesen Zeiten mehr redundante Information beisteuern, um eine verbesserte Kompensation von Fehlern zu erlauben.
-
In einer Variante des Verfahrens sind zu übermittelnde Daten in einer Datei enthalten, wobei die Datei in mehrere Teilstücke unterteilt wird; und die Teilstücke jeweils mittels eines Verfahrens nach einem der vorangehenden Ansprüche übermittelt werden. Dabei können die Teilstücke gleichzeitig übermittelt werden. Die Datei kann beispielsweise in aufeinander folgende Abschnitte unterteilt werden und die Abschnitte können miteinander verschränkt übermittelt werden. So kann an jedem Abschnitt ein verschiebbares Fenster („sliding window“) gebildet werden, in welche Daten übertragen werden. Die Fenster der Abschnitte können in gleichem Maß über die Daten bewegt werden. Dies kann insbesondere bei einer sehr großen Datei vorteilhaft sein.
-
Eine Zuordnung von Datenströmen zu Kommunikationskanälen kann für wenigstens zwei der Teilstücke unterschiedlich sein. Dadurch kann ein systematischer Fehler unterbunden werden, der entstehen kann, wenn Teile der Abschnitte zyklisch synchronisiert übertragen werden. Eine Bestimmungssicherheit für einen Fehler und eine Wahrscheinlichkeit für die Behebbarkeit eines Fehlers können erhöht sein.
-
Die empfangenen Daten können mit der enthaltenen Vorwärts-Fehlerschutz-Codierung abgespeichert werden und die Vorwärts-Fehlerschutz-Codierung kann erst zum Zugriff auf die Daten entfernt werden. Dadurch kann ein möglicher Fehler im Bereich eines Datenspeichers ebenfalls kompensiert werden. In einer Ausführungsform können empfangene Daten zunächst auf Übertragungsfehler überprüft werden. Traten keine Fehler auf, so können die empfangenen Daten unverändert abgespeichert werden. Müssen einer oder mehrere Fehler korrigiert werden, können die redundanten Informationen nach der Korrektur neu erstellt werden, bevor die Daten abgespeichert werden.
-
Eine Sendevorrichtung zum unidirektionalen Datentransfer von Daten an einen Empfänger umfasst einen Demultiplexer, der zum Demultiplexen von Daten eingerichtet ist; einen Codierer, der zum Codieren von Daten mittels einer Vorwärts-Fehlerschutz-Codierung eingerichtet ist; Schnittstellen zur Verbindung mit mehreren Kommunikationskanälen; und eine Verarbeitungseinrichtung. Dabei ist die Verarbeitungseinrichtung dazu eingerichtet, ein Demultiplexen der Daten, ein Versehen der Daten mit einer Vorwärts-Fehlerschutz-Codierung und ein Versenden der Daten zu steuern. Diese Variante kann zu einem hierin beschriebenen ersten Verfahren korrespondieren. Eine weitere Sendevorrichtung kann zu einem hierin beschriebenen zweiten Verfahren korrespondieren. Hierbei können Positionen des Demultiplexers und des Codierers bezüglich des Datenflusses vertauscht sein. Vorteile oder Merkmale der Sendevorrichtungen untereinander oder zwischen einer Sendevorrichtung und einem korrespondierenden Verfahren können austauschbar sein.
-
Der Kommunikationskanal kann mittels einer Datendiode mit einer der Schnittstellen verbunden sein, um ein Empfangen von Daten von einem der Kommunikationskanäle zu verhindern. Mehrere Kommunikationskanäle können jeweils mittels einer zugeordneten Datendiode abgesichert sein. Jede Datendiode kann einen eigenen Kommunikationskanal realisieren. Eine Datendiode stellt eine rein unidirektionale Übertragung sicher. Zum Schutz der Sendevorrichtung kann eine ausgehende Datendiode vorgesehen sein, die ein Empfangen von Daten verhindert. Die Datendiode kann in Form eines Netzwerkprotokollierers („Data Capture Unit“) realisiert sein, der derart eingerichtet werden kann, eine Datenübertragung zwischen zwei Netzwerkkomponenten rückwirkungsfrei abzutasten. Ein Netzwerkprotokollierer kann deutlich kostengünstiger als eine speziell ausgebildete Datendiode sein. Eine Datenkommunikation könnte zwischen dem Codierer (oder, korrespondierend zum zweiten Verfahren dem Demultiplexer) und einem Blindgerät (Nulldevice) mittels des Netzwerkprotokollierers abgetastet und über den Kommunikationskanal ausgesandt werden. Das Blindgerät kann die Daten vollständig verwerfen.
-
Eine Empfangsvorrichtung zum unidirektionalen Datentransfer von Daten von einem Sender umfasst Schnittstellen zur Verbindung mit mehreren Kommunikationskanälen; einen Multiplexer, der zum Multiplexen von Daten eingerichtet ist; einen Decodierer, der zum Decodieren von Daten eingerichtet ist, die mit einer Vorwärts-Fehlerschutz-Codierung versehen sind; und eine Verarbeitungseinrichtung. Dabei ist die Verarbeitungseinrichtung dazu eingerichtet, ein Empfangen der Daten, ein Multiplexen der Daten und ein Decodieren der Daten zu steuern. Diese Ausführungsform kann zu einem ersten hierin beschriebenen Verfahren korrespondieren. Für eine Anwendung in Verbindung mit einem hierin beschriebenen zweiten Verfahren können der Multiplexer und der Decodierer bezüglich eines Datenflusses vertauschte Positionen aufweisen. Vorteile oder Merkmale der Empfangsvorrichtungen können untereinander oder mit den zugeordneten Sendevorrichtunten bzw. korrespondierenden Verfahren austauschbar sein.
-
Der Kommunikationskanal kann mittels einer Datendiode mit den Schnittstellen verbunden sein, um ein Versenden von Daten durch den Empfänger an eine andere Stelle zu verhindern. Zum Schutz der Empfangsvorrichtung kann eine eingehende Datendiode vorgesehen sein, die ein Senden von Daten verhindert.
-
Ein System umfasst eine hierin beschriebene Sendevorrichtung und eine hierin beschriebene Empfangsvorrichtung. Dabei sind bevorzugt die Schnittstellen der Sendevorrichtung paarweise mit denen der Empfangsvorrichtung verbunden.
-
Die oben beschriebenen Eigenschaften, Merkmale und Vorteile dieser Erfindung sowie die Art und Weise, wie diese erreicht werden, werden klarer und deutlicher verständlich im Zusammenhang mit der folgenden Beschreibung der Ausführungsbeispiele, die im Zusammenhang mit den Zeichnungen näher erläutert werden, wobei
- 1 ein beispielhaftes System;
- 2 ein beispielhaftes Verfahren; und
- 3 eine Variante des Verfahrens
darstellen.
-
1 zeigt ein beispielhaftes System 100 zur Übertragung von Daten zwischen einer Sendevorrichtung 105 und einer Empfangsvorrichtung 110 über mehrere Kommunikationskanäle 115. Es wird davon ausgegangen, dass die Kommunikationskanäle 115 von der gleichen Art sind, beispielsweise hinsichtlich Bandbreite, Übertragungsmedium, Latenzzeit, Fehlerrate oder Verfügbarkeit. Es können aber auch mehr oder weniger stark unterschiedliche Kommunikationskanäle 115 unterstützt werden. 115. Die Sendevorrichtung 105 kann Teil einer größeren Datenverarbeitungsanlage sein und ist dazu eingerichtet, Daten auszusenden, aber nicht zu empfangen. Die Empfangseinrichtung 110 kann Teil ebenfalls einer größeren Datenverarbeitungsanlage sein und ist umgekehrt dazu eingerichtet, Daten zu empfangen, aber nicht auszusenden. Eine Kommunikation soll ausschließlich von der Sendevorrichtung 105 zur Empfangsvorrichtung 110 fließen, ein Rückkanal, auch nur zur Bestätigung eines übertragenen Datenblocks, ist nicht vorgesehen.
-
Die Sendevorrichtung 105 umfasst einen optionalen Datenspeicher 120, einen Demultiplexer 125, einen Codierer 130, eine oder mehrere Schnittstellen 135 und bevorzugt eine Verarbeitungseinrichtung 132. Zwischen einer Schnittstelle 135 und einem der Kommunikationskanäle 115 kann eine ausgehende Datendiode 140 vorgesehen sein.
-
Der Datenspeicher 120 ist zur Ablage einer Datei oder bevorzugt strukturierter Daten eingerichtet, die an die Empfangseinrichtung 110 übermittelt werden sollen. Der Datenspeicher 120 kann auch durch eine Schnittstelle ersetzt sein, über die zu übertragende Daten bezogen werden können.
-
Der Demultiplexer 125 ist dazu eingerichtet, die zu übertragenden Daten in mehrere Datenströme aufzuteilen, wobei bevorzugt jedem Kommunikationskanal ein Datenstrom zugeordnet ist und umgekehrt. Zur Aufteilung können sequentiell vorliegende Daten in Pakete zerlegt und diese unterschiedlichen Datenströmen zugewiesen werden, beispielsweise zyklisch. Die Aufteilung kann in bekannter Weise derart erfolgen, dass übertragene Pakete später wieder zu den Originaldaten zusammengefügt werden können, beispielsweise indem die Pakete Sequenznummern tragen.
-
Der Codierer 130 ist dazu eingerichtet, Daten, die er vom Demultiplexer 125 erhält, mit einer Vorwärts-Fehlerschutz-Codierung zu codieren. Dabei fügt er den Daten systematisch redundante Informationen hinzu. Gegebenenfalls werden auch Prüfsummen über eines oder mehrere Pakete gebildet und eingefügt, um das Bestimmen eines Fehlers in den Daten zu ermöglichen. Für jeden Datenstrom 115 kann ein Codierer 130 vorgesehen sein oder der Codierer 130 kann unabhängig auf mehreren Datenströmen 115 arbeiten. Auch ein kombinierter Betrieb, bei dem er mehrere Datenströme 115 in abhängiger Weise codiert, ist möglich. Bevorzugt stellt der Codierer 130 Datenpakete bereit, die mittels UDP transportiert werden können.
-
Die Schnittstelle 135 ist dazu eingerichtet, ausgehende Daten an ein Übertragungsmedium eines zugeordneten Kommunikationskanals 115 auszugeben. Hier kann insbesondere eine Umsetzung von Informationen in ein physikalisches Phänomen wie einen Licht- oder Stromwert erfolgen. In einer Ausführungsform ist eine einzige Schnittstelle 135 für mehrere Datenströme und Kommunikationskanäle 115 vorgesehen.
-
Die Datendiode 140 ist dazu eingerichtet, Daten nur in einer vorbestimmten Richtung zu befördern, die in 1 durch die Pfeilrichtung gegeben ist. Das aus der Elektrotechnik entlehnte Symbol einer Diode zeigt, dass ein Informationsfluss entgegen der Pfeilrichtung unterbunden ist. Eine solche Kommunikation wird auch Simplex-Kommunikation genannt. Zur Realisierung einer Datendiode 140 kann eine dedizierte kommerzielle Lösung verwendet werden. Alternativ kann ein Netzwerkprotokollierer verwendet werden, der Daten an den Kommunikationskanal unidirektional und rückwirkungsfrei bereitstellen kann. Eine solche Einrichtung ist auch als „Data Capture Unit“ bekannt. In einer anderen als der gezeigten Ausführungsform sind die Datendiode 140 und die Schnittstelle 135 in ihren Positionen vertauscht.
-
Die Verarbeitungseinrichtung 132 umfasst bevorzugt einen programmierbaren Mikrocomputer oder Mikrocontroller und ist zur Steuerung von Komponenten der Sendevorrichtung 105 eingerichtet. Dabei kann die Verarbeitungseinrichtung 132 auch eines oder mehrere der weiteren Elemente der Sendevorrichtung 105 umfassen.
-
In der vorliegenden Ausführungsform werden seitens der Sendevorrichtung 105 zu übertragende Daten zuerst demultiplexiert und dann codiert. In einer anderen Ausführungsform können auch zuerst eine Codierung und danach eine Demultiplexierung erfolgen. Dazu können die Elemente 125 und 130 in ihren Positionen in der Sendevorrichtung 105 vertauscht sein; zwischen ihnen ist dann nur noch eine statt wie dargestellt mehrerer Verbindungen nötig.
-
Die Empfangsvorrichtung 110 arbeitet in komplementärer Weise zur Sendevorrichtung 105. Sie umfasst die im Wesentlichen gleichen Elemente wie die Sendevorrichtung 105, nur sind an Stelle des Multiplexers 125 ein Demultiplexer 145 und an Stelle des Codierers 130 ein Decodierer 150 vorgesehen. Alle oben bezüglich der Sendevorrichtung 105 beschriebenen Variationen sind hier auch möglich. Varianten der Sende- und der Empfangsvorrichtung 105, 110 können unabhängig voneinander gewählt werden, allerdings müssen die Reihenfolgen von Demultiplexen und Codieren seitens der Sendevorrichtung 105 und Decodieren und Multiplexen seitens der Empfangsvorrichtung 110 aufeinander abgestimmt sein.
-
Das Demultiplexen und Decodieren erfolgt in umgekehrter Reihenfolge gegenüber der Sendevorrichtung 105. In der dargestellten Ausführungsform also werden die über die Schnittstellen 135 empfangenen Datenströme empfängerseitig zunächst jeweils mittels des Decodierers 150 decodiert und dann mittels des Multiplexers 145 multiplexiert. In einer anderen Ausführungsform, bei der senderseitig zuerst ein Codieren und dann ein Demultiplexieren erfolgen, werden empfängerseitig zuerst ein Multiplexieren und dann ein Decodieren durchgeführt. Das Ergebnis ist in jedem Fall, dass die übermittelten Daten wieder im Originalformat vorliegen und im Datenspeicher 120 abgelegt werden können. Auch dieser Datenspeicher 120 kann durch eine Schnittstelle ersetzt werden, über welche die Daten bereitgestellt werden.
-
Das Demultiplexieren umfasst ein Zusammenführen von Fragmenten zu einer Datei oder einem Datenstrom. Das Decodieren umfasst das Entfernen von redundanten Informationen, die seitens der Sendevorrichtung 105 hinzugefügt wurden. Dabei wird bevorzugt zunächst auf der Basis von Prüfsummen über bestimmte Abschnitte von Daten überprüft, ob während der Übertragung ein Defekt an den Daten eingetreten ist. Für einen Abschnitt können üblicherweise Fehler bis zu einer ersten vorbestimmten Anzahl von defekten Bits bestimmt werden. Fehler bis zu einer zweiten vorbestimmten Anzahl von Bits können auch repariert werden, wobei die zweite Anzahl üblicherweise kleiner als die erste ist.
-
In einer weiteren Ausführungsform kann das Decodieren auch ausgesetzt werden, bis die empfangenen Daten gebraucht werden. Dazu können die bevorzugt demultiplexierten, aber noch nicht decodierten Daten zunächst im Datenspeicher 120 abgelegt werden. Soll auf die Daten zugegriffen werden, kann die erforderliche Decodierung unmittelbar durchgeführt werden.
-
2 zeigt ein schematisches Ablaufdiagramm eines Verfahrens 200 zur Übermittlung von Daten, insbesondere mittels eines Systems 100 wie in 1 dargestellt ist. Zunächst liegen Daten in einem exemplarischen Block vor, der sechs Einheiten umfasst. Eine Einheit kann beispielsweise einem UDP-Paket bzw. dessen Nutzlast entsprechen.
-
In einem ersten Schritt 205 werden die Daten mit einer Vorwärts-Fehlerschutz-Codierung codiert, wobei Informationen hinzugefügt werden, sodass acht Einheiten Daten entstehen. Die zusätzlichen Informationen können an beliebigen Stellen hinzugefügt werden; üblicherweise erfolgt eine gewisse Verschränkung, bei der die neuen Informationen einigermaßen gleichmäßig über die zu sichernden Nettodaten verteilt werden. Wie viele Informationen hinzugefügt werden, kann üblicherweise gesteuert werden, wobei allgemein mehr hinzugefügte Informationen zu einer robusteren Übertragung führen können.
-
Die Vorwärts-Fehlerschutz-Codierung kann insbesondere einen Block-Code, einen kontinuierlichen Code oder einen Turbo Code umfassen. Ein Block-Code arbeitet stets auf einem Datenblock vorbestimmter Länge; bekannte Block-Codes umfassen Reed-Solomon, Reed-Muller, Golay, Multidimensionale Parity, MDS, Hadamard, Expander oder Hamming. Ein kontinuierlicher Code, auch Faltungscode genannt, erlaubt die Übermittlung eines potentiell endlosen Datenstroms. Allerdings ist für eine gegebene Situation kein systematisches Verfahren zur Erzeugung eines passenden Faltungscodes bekannt. Man versucht, Eigenarten der zu übertragenden Daten oder des Übertragungsmediums durch passende Wahl bestimmter Parameter des Faltungscodes zu modellieren. Häufig muss eine große Zahl möglicher Faltungscodes in einer Simulation auf seine Anwendbarkeit geprüft werden. Das Decodieren eines Faltungscodes erfolgt üblicherweise mittels des Viterbi-Algorithmus.
-
Ein Turbo-Codierer besteht aus mindestens zwei parallel oder seriell geschalteten Codierern für die elementare Codierung. Die elementaren Codierer stellen jeweils für sich einen bestimmten Kanalcode dar. Der erste Codierer erhält die Nutzdaten in unveränderter Form, und dessen Ausgabe wird über einen sogenannten Interleaver, welcher die Datenreihenfolge nach bestimmten Regeln umstellt, an den zweiten Codierer als Eingabe weitergeleitet. Der zweite Codierer liefert, bei nur zwei Codierern, schließlich die zu übertragende Datenfolge.
-
In einem Schritt 210 werden die codierten Daten bevorzugt multiplexiert. Dabei wird mehreren Kommunikationskanälen 115 jeweils eine Abfolge von Dateneinheiten zugeordnet. Das Multiplexieren kann berücksichtigen, dass unterschiedliche Kommunikationskanäle 115 unterschiedliche Datendurchsätze aufweisen können. Ein Kommunikationskanal 115 mit hohem Datendurchsatz kann mehr Dateneinheiten pro Zeit erhalten als ein Kommunikationskanal 115 mit niedrigerem Datendurchsatz. Anschließend werden die Daten in einem Schritt 215 von der Sendevorrichtung 105 an die Empfangsvorrichtung 110 übermittelt.
-
In einem Schritt 220 werden die Daten multiplexiert, sodass die einzelnen Einheiten wieder in der gleichen Reihenfolge vorliegen wie vor dem Schritt 210. Das Resultat kann optional in einem Schritt 225 abgespeichert werden. Zu einem anderen Zeitpunkt, beispielsweise wenn auf die abgespeicherten Daten zugegriffen werden soll, kann in einem Schritt 230 eine Decodierung erfolgen, bei der die redundanten Informationen, die im Schritt 205 hinzugefügt wurden, wieder entfernt werden. Danach können die Daten übertragen oder erneut abgespeichert werden.
-
3 zeigt eine Variante 300 des Verfahrens 200 von 2. Zur Übertragung einer Datei 305 soll diese nicht sequentiell verarbeitet, sondern in mehrere Teile 310 zerlegt werden, um dann die Teile 310 jeweils auf eine hierin bereits beschriebene Art und Weise über die Kommunikationskanäle 115 zu übermitteln. Entscheidend ist hierbei, dass die Teile 310 nebenläufig, gleichzeitig oder verschränkt über die Kommunikationskanäle 115 übertragen werden. Außerdem ist bevorzugt, dass eine Verteilung von Dateneinheiten auf Kommunikationskanäle 115 (vgl. 2) bei mindestens zwei der erzeugten Datenströme unterschiedlich ist, um die Entropie auf der Übertragungsstrecke zu erhöhen.
-
Im vorliegenden Beispiel sind vier Teile 310 und vier Kommunikationskanäle 115 vorgesehen. Im Rahmen der Darstellung sollen von jedem Teil 310 acht Dateneinheiten übertragen werden. Dazu werden über einen ersten Kommunikationskanal 115.1 von einem ersten Teil 310.1 die Einheiten 1 und 5 übertragen, von einem zweiten Teil 310.2 die Einheiten 1 und 5 und von einem dritten Teil 310.3 die Einheiten 1 und 5. Die über die anderen Kommunikationskanäle 115 übertragenen Einheiten der Teile 310 sind aus 3 abzulesen.
-
Die beschriebene Vorgehensweise stellt sicher, dass von allen Teilen 310 Einheiten übertragen werden. Ein Fenster von Daten jedes Teils 310, die sich in der Übertragung befinden, wird dabei kontinuierlich bewegt. Man spricht auch von einem „Sliding Window“-Ansatz.
-
Obwohl die Erfindung im Detail durch das bevorzugte Ausführungsbeispiel näher illustriert und beschrieben wurde, so ist die Erfindung nicht durch die offenbarten Beispiele eingeschränkt und andere Variationen können vom Fachmann hieraus abgeleitet werden, ohne den Schutzumfang der Erfindung zu verlassen.