DE69805849T2 - Ein vorwärtsfehlerkorrektionssystem für packetbasierte echtzeitmedien - Google Patents
Ein vorwärtsfehlerkorrektionssystem für packetbasierte echtzeitmedienInfo
- Publication number
- DE69805849T2 DE69805849T2 DE69805849T DE69805849T DE69805849T2 DE 69805849 T2 DE69805849 T2 DE 69805849T2 DE 69805849 T DE69805849 T DE 69805849T DE 69805849 T DE69805849 T DE 69805849T DE 69805849 T2 DE69805849 T2 DE 69805849T2
- Authority
- DE
- Germany
- Prior art keywords
- payload
- blocks
- packets
- packet
- sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000012937 correction Methods 0.000 title claims abstract description 29
- 230000005540 biological transmission Effects 0.000 claims abstract description 44
- 238000000034 method Methods 0.000 claims description 46
- 238000011084 recovery Methods 0.000 claims description 14
- 230000008569 process Effects 0.000 claims description 9
- 230000001172 regenerating effect Effects 0.000 claims 1
- 230000007246 mechanism Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000005236 sound signal Effects 0.000 description 3
- 230000006978 adaptation Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/0078—Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
- H04L1/0079—Formats for control data
- H04L1/008—Formats for control data where the control data relates to payload of a different packet
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0057—Block codes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Description
- Ein Teil der Offenbarung dieses Patentdokuments enthält Material, das einem Urheberrechtschutz unterliegt. Der Inhaber des Urheberschutzrechts hat keine Einwände gegen die Faksimile-Wiedergabe der Patentoffenbarung, wie sie in der Patentrolle und den Aufzeichnungen des Patent and Trademark Office (Patent- und Markenamts) erscheint, behält sich jedoch anderweitig alle Urheberschutzrechte vor.
- Die vorliegende Erfindung betrifft paketvermittelte Telekommunikationsnetzwerke und insbesondere ein System zum Korrigieren des Verlusts von Datenpaketen in einem solchen Netzwerk.
- In einem paketvermittelten Netzwerk wird eine zu sendende Nachricht in Blöcke oder Datenpakete mit fester oder veränderlicher Länge unterteilt. Die Pakete werden dann über mehrere Orte einzeln über das Netzwerk gesendet und dann an einem Endort wieder zusammengesetzt, bevor diese an einem empfangenden Ende an einen Benutzer übergeben werden. Um eine richtige Übertragung und Wiederzusammensetzung der Datenblöcke an dem empfangenden Ende zu gewährleisten, werden typischerweise verschiedene Steuerdaten, wie Sequenz- und Gültigkeitsprüfinformationen, in Form eines Paketkopfs an jedes Paket angehängt. An dem empfangenden Ende werden die Pakete dann wieder zusammengesetzt und in einem mit der Ausrüstung eines Benutzers kompatiblen Format zu dem Endbenutzer übertragen.
- Es sind verschiedene Paketvermittlungsprotokolle erhältlich. Diese Protokolle unterscheiden sich hinsichtlich der Effizienz und der Zuverlässigkeit. Fachleute sind beispielsweise mit der TCP/IP-Protokollfamilie vertraut, die zum Ausführen der Übertragung von Paketen über das Internet verwendet wird. Zwei der Protokolle innerhalb der TCP/IP- Familie sind beispielsweise TCP und UDP.
- TCP ist ein zuverlässiges verbindungsorientiertes Protokoll, das die erforderliche Intelligenz aufweist, um eine erfolgreiche Übertragung zwischen sendenden und empfangenden Enden in dem Netzwerk zu bestätigen. Nach dem TCP- Protokoll wird jedes Paket in dessen Kopfteil mit einer Sequenznummer markiert, um es dem empfangenden Ende zu ermöglichen, die Pakete in der ursprünglichen Nachricht richtig wieder zusammenzusetzen. Das empfangende Ende wird dann typischerweise so konfiguriert, daß dieses den Empfang von Paketen bestätigt und das sendende Ende ausdrücklich auffordert, jegliche verlorengegangenen Pakete neu zu übertragen. UDP ist dagegen ein unzuverlässiges verbindungsfreies Protokoll, das ein Senden und Empfangen von Paketen erleichtert, jedoch keinerlei Intelligenz aufweist, um zu bestätigen, daß ein Paket dessen Ziel erfolgreich erreicht hat.
- Es wurde herausgefunden, daß im Internet der Verlust ganzer Pakete mit einer Rate von über 20% auftritt, wenn das Netzwerk sehr überfüllt bzw. verstopft ist. Typischerweise geschieht dieser Paketverlust so, daß ein Paket zu einem Zeitpunkt verlorengeht. Gelegentlich können jedoch mehrere sequentielle Pakete in einer Reihe verlorengehen. In beiden Fällen erzeugt ein verbindungsorientiertes Protokoll, wie TCP, wie Fachleuten zustimmen werden, eine Verzögerung bei der Paketübertragung, weil dieses die erfolgreiche Übertragung bestätigen muß und die Neuübertragung dieser verlorengegangenen Pakete anfordern muß. Während diese Verzögerung bei der Übertragung reiner Datensignale (in der Art einer E-Mail-Nachricht) kein erhebliches Problem sein mag, kann diese die Übertragung von Echtzeit-Mediensignalen (wie digitalisierter Sprach-, Video- oder Audiosignale) in unannehmbarer Weise unterbrechen.
- Carle u. a. beschreiben in der internationalen Veröffentlichung WO97/38549 ein Verfahren und eine Vorrichtung zur Fehlerkontrolle in einem im asynchronen Übertragungsmodus (ATM) arbeitenden Netzwerk, wobei es sich um ein schnelles paketvermitteltes Netzwerk handelt, bei dem als Zellen bezeichnete kurze Pakete fester Größe verwendet werden. Für jeden Rahmen von Datenzellen D&sub1; ... Dm wird unter Verwendung eines Doppelmatrix-Verschachtelungs-XOR-Schemas ein aus Redundanzzellen R&sub1; ... Rh bestehender Vorwärtsfehlercode erzeugt. Die Zellen jedes CPCS-PDU (Protokolldateneinheit der Common-Part-Convergence-Sublayer der ATM- Anpassungsschicht 5) werden so angeordnet, daß diese Zellen aufweisen, die Benutzerdaten für einen Rahmen i darstellen, und daß diese Zellen aufweisen, die den Vorwärtsfehlerkorrekturcode für einen Rahmen i - 1 darstellen.
- Matsushita beschreibt in der Patentschrift US 5 608 738 ein Verfahren zum Bilden von m Vorwärtsfehlerkorrekturcode- Paketen aus n Datenpaketen unter Verwendung von einem oder mehreren Fehlerkorrekturrahmen als Zwischendatenstrukturen. Nachdem die m Vorwärtsfehlerkorrekturcode-Pakete erzeugt wurden, werden sie sequentiell mit den n Datenpaketen übertragen.
- Daher besteht ein Bedarf an einem verbesserten System zum Reagieren auf Paketverlustfehler und zum Korrigieren von diesen, ohne erhebliche Übertragungsverzögerungen zu erzeugen.
- Die vorliegende Erfindung sieht ein rechnerisch einfaches, jedoch leistungsfähiges System zum Behandeln eines Paketverlusts vor, der bei der Kommunikation von Echtzeit- Mediensignalen, wie digitalisierten Sprach-, Video- oder Audiosignalen, in einem paketvermittelten Netzwerk auftreten kann. Gemäß einem Aspekt leitet ein Codierer an dem sendenden Ende p Redundanzblöcke von jeder Gruppe von k Nutzblöcken ab und verkettet jeweils die Redundanzblöcke mit Nutzblöcken in der nächsten Gruppe von k Nutzblöcken. Gemäß einem weiteren Aspekt erzeugt die Erfindung für jedes von einer Reihe von Nutzpaketen einen Vorwärtsfehlerkorrekturcode, der durch Bilden der XOR-Summe einer vorgegebenen Anzahl vorhergehender Nutzpakete definiert wird, und hängt ihn an jedes von der Reihe von Nutzpaketen an. Auf diese Weise kann ein empfangendes Ende eine verlorengegangene Nutzlast aus den redundanten Fehlerkorrekturcodes extrahieren, die von nachfolgenden Paketen übertragen werden, und den Verlust mehrerer Pakete in einer Reihe korrigieren.
- Vorteilhafterweise liegt die Größe des gemäß der vorliegenden Erfindung verwendeten Vorwärtsfehlerkorrekturcodes unabhängig von der Anzahl der durch dieses Korrekturschema wiederzugewinnenden Pakete in einer Reihe in der gleichen Größenordnung wie die Nutzlast selbst. Die vorliegende Erfindung erhöht nicht die Paketrate und kann deren Funktion ausführen, ohne daß in dem Übertragungsprozeß eine erhebliche Verzögerung herbeigeführt wird.
- Diese und andere Vorteile der vorliegenden Erfindung werden Durchschnittsfachleuten beim Lesen der folgenden detaillierten Beschreibung unter Bezugnahme auf die beiliegende Zeichnung verständlich werden.
- Eine bevorzugte Ausführungsform der vorliegenden Erfindung wird hierin mit Bezug auf die Zeichnung beschrieben.
- Fig. 1 zeigt einen in Nutzpakete PL[k] eingeteilten Nutzdatenstrom.
- Fig. 2 zeigt einen gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung arbeitenden Codierer.
- Fig. 3 zeigt ein gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung codiertes Paket.
- Fig. 4 zeigt einen gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung arbeitenden Decodierer.
- Fig. 5 zeigt einen gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung codierten Ausgangsdatenstrom, der Pakete der Form P[k] = {PL[k], FEC[k]} aufweist.
- Fig. 6 zeigt mehrere Stufen eines gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung arbeitenden Codierers.
- Fig. 7 zeigt ein gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung codiertes Paket.
- Fig. 8 zeigt eine durch einen gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung arbeitenden Decodierer zusammengestellte bzw. kompilierte Verknüpfungsliste.
- Fig. 9 zeigt die von einem gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung arbeitenden Decodierer ausgeführten Analyseschritte.
- Fig. 10 listet die in Fig. 9 gezeigten Schritte auf.
- Die vorliegende Erfindung stellt ein verbessertes System zum Übertragen von im wesentlichen Echtzeit-Mediensignalen über einen unzuverlässigen digitalen Übertragungskanal bereit. Die Erfindung kann insbesondere zur Übertragung digitalisierter Video- oder Audiosignale (einschließlich beispielsweise Sprache) über das Internet verwendet werden. Bei der bevorzugten Ausführungsform verwendet die Erfindung ein rechnerisch einfaches Fehlerkorrekturschema, das das Wiedergewinnen bzw. Wiederherstellen verlorener Datenpakete innerhalb spezifizierter Grenzen ermöglicht, während der Vorteil erzielt wird, daß die Übertragungszeit nur um eine sehr geringe Verzögerung verlängert wird.
- Zu Erläuterungszwecken wird in der folgenden Beschreibung angenommen, daß ein Audio- oder Videosignal in einen digitalen Datenstrom umgewandelt worden ist und in einem Netzwerk von einem ersten Knoten zu einem zweiten Knoten zu übertragen ist. Es sei bemerkt, daß die Erfindung natürlich nicht auf die Verwendung in einer traditionellen Netzwerkkonfiguration beschränkt ist, sondern daß diese sich auf jeden beliebigen Kommunikationsweg erstrecken kann, über den eine Sequenz von Paketen übertragen wird, wobei dies beispielsweise einen direkten Weg einschließt. Bei der bevorzugten Ausführungsform muß das fragliche Signal jedoch zwischen Knoten eines Netzwerks, wie bspw. das Internet, übertragen werden.
- In der Beschreibung wird weiterhin beispielhaft angenommen, daß der digitale Datenstrom oder die Nutzlast in eine Sequenz von Rahmen oder Nutzpaketen PL[1], PL[2], PL[3], PL[4], PL[5], PL[6], ..., PL[k] eingeteilt worden ist. Ein in diese Pakete eingeteilter Quellendatenstrom ist bspw. in Fig. 1 dargestellt. Bei diesem Beispiel besteht jedes dieser Nutzpakete aus einer festgelegten Anzahl von Bytes oder Bits und stellt vorzugsweise einen Abschnitt eines über ein Netzwerk zu übertragenden Signals dar.
- In dieser Beschreibung wird zusätzlich angenommen, daß die Pakete in einem Netzwerk nach einem Paketvermittlungsprotokoll übertragen werden, bei dem ein bitweises oder anderes hochauflösendes Prüfschema, wie eine Prüfsumme oder ein Paritätsbit, eingesetzt wird. Es wird daher angenommen, daß eine Technik vorhanden ist, um auf den Verlust eines gewissen Teils eines erfolgreich übertragenen Pakets zu reagieren. Es bleibt jedoch das Problem, wie der Verlust von einem oder mehreren ganzen Paketen zu korrigieren ist.
- Wie vorstehend in dem Abschnitt zum Hintergrund erörtert wurde, bietet das TCP-Protokoll ein Verfahren zum Reagieren auf einen Verlust von Paketen in einem digitalen Übertragungsnetzwerk. Nach dem TCP kann der Empfangsknoten so konfiguriert werden, daß dieser den Empfang von Paketen bestätigt und den Sendeknoten ausdrücklich auffordert, alle verlorengegangenen Pakete erneut zu übertragen. Dieses Anforderungs- und Neuübertragungssystem ist im allgemeinen genau. Wie jedoch vorstehend erwähnt wurde, ist das System für Anwendungen in Zusammenhang mit Echtzeit-Medienübertragungen nicht gut geeignet, weil die Übertragung solcher Signale sehr empfindlich für die durch Neuübertragungsanforderungen erzeugte Verzögerung ist.
- Eher als bei einer Verwendung eines Anforderungs- und Neuübertragungssystems kann eine höhere Effizienz der Paketverlustkorrektur durch Übertragen eines Korrekturcodes einer bestimmten Art gleichzeitig mit den Nutzdaten erreicht werden, wodurch dem Empfangsende ausreichend Informationen zum Wiedergewinnen verlorengegangener Pakete gegeben werden. Zu diesem Zweck sind mehrere Fehlerkorrekturcodemechanismen verfügbar. Diese Mechanismen schließen bspw. eine Verschachtelung und eine Blockcodierung ein.
- Eine Verschachtelung wird üblicherweise bei drahtlosen Kommunikationen verwendet. Diese stellt ein wirksames Verfahren zum Bekämpfen von Fehler-Bursts bzw. Fehlerbündel dar, die auf einem Überblendungskanal auftreten. Eine Verschachtelung erfordert gewöhnlich ein Ausbreiten der Bits jedes Codeworts (oder jedes Nutzpakets) weg voneinander, so daß bei diesen eine unabhängige Überblendung auftritt und die ursprünglichen Daten leichter wiedergewonnen werden können.
- Eine Blockcodierung erfordert wiederum ein Abbilden eines Rahmens binärer Quellendaten in einen codierten Datenblock, der einen Satz redundanter Paritätssymbole aufweist. Nach der herkömmlichen Terminologie wandelt ein Blockcodierer eine Gruppe von k Nutzeinheiten (in der Art von Bytes oder Bits) typischerweise in eine größere Gruppe von n Einheiten um, indem dieser der Gruppe p = n - k Paritätseinheiten oder Vorwärtsfehlerkorrekturcodes (FEC-Codes) hinzufügt oder an diese anhängt. Jedes Paritätspaket wird auf der Grundlage aller oder einiger Untersätze bzw. Untermengen der k Nutzeinheiten durch eine vorgegebene Codierungstechnik erzeugt. Eine der einfachsten Formen eines Blockcodes ist ein Wiederholungscode, bei dem die binären Quellendaten als ein Satz von Paritätsbits wiederholt werden. Einer der beliebteren, jedoch komplexen Blockcodes ist durch die Reed-Solomon-(RS)-Codeklasse über dem 2&sup8;-Galoisschen Feld gegeben. Diese Codes weisen eine optimale Fähigkeit zum Korrigieren gelöschter Bytes auf. Falls 8 Bytes beispielsweise mit 3 Paritätsbytes (insgesamt 11 Bytes) geschützt werden, können beliebige drei Bytes verlorengehen, und die ursprünglichen 8 Bytes können dennoch wiedergewonnen werden.
- Leider führt das Hinzufügen redundanter Paritätspakete jedoch zu einer erhöhten Komplexität und verzögert die Übertragung. In einem paketvermittelten Netzwerk leiten Router bzw. Leitrechner Pakete auf der Grundlage in den Paketköpfen enthaltener Informationen. Daher steht der von einem Paket-Router ausgeführte Arbeitsaufwand im allgemeinen in direkter Beziehung zu der Anzahl der geleiteten Pakete. Weil jedes Paket, unabhängig davon, ob es ein Nutzpaket oder ein Paritätspaket ist, seinen eigenen Kopf aufweist, erhöht eine Erhöhung der Paketrate folglich die Belastung von Netzwerk-Routern und könnte die Verzögerungszeit verlängern oder theoretisch den Ausfall eines Netzwerks hervorrufen.
- Ein Hinzufügen getrennter Paritätspakete zu der Übertragungssequenz ist eine besondere Betriebsmittelverschwendung, wenn dieses in Zusammenhang mit einigen der üblicheren Echtzeit-Medienübertragungsprotokollen erfolgt, weil viele der bestehenden Protokolle jedem Paket einen erheblichen Zusatz bzw. Overhead hinzufügt. Beispielsweise liefert der G.723.1-Sprachcodierer alle 30 Millisekunden 24 Nutzbytes, RTP/UDP/IP fügt jedem Nutzpaket jedoch einen 50- Byte-Kopf hinzu. Ein Paritätsblock, der für das gleiche Empfangsende bestimmt ist wie ein benachbarter Nutzblock, weist einen Kopf auf, der mit dem Kopf des Nutzblocks fast identisch ist. Das Paritätspaket benötigt jedoch weiterhin die vollen 44 Bytes an Overhead, was zu einer Bandbreitenverschwendung führt. Wie dieses Beispiel zeigt, sind herkömmliche Blockcodiertechniken daher nicht gut zum Korrigieren eines Paketverlusts bei Echtzeit-Medienübertragungen geeignet.
- Zum Vermeiden einer Erhöhung der Paketrate besteht eine andere Technik zum Bereitstellen von Paritätsinformationen darin, redundante Paritätsinformationen an existierende Nutzpakete anzuhängen. Als ein Abkömmling bzw. Ableger herkömmlicher Wiederholungscodes kann der Übertragungsknoten beispielsweise jedem Nutzpaket redundante Kopien der vorhergehenden n Anzahl von Nutzpaketen hinzufügen. Auf diese Weise kann das Empfangsende leicht ein verlorengegangenes Paket PL[k] von einem der n folgenden Pakete PL[k + 1] ... PL[k + n] wiedergewinnen. Wenn beispielsweise n = 2 ist, werden die Nutzpakete PL[k - 1] und PL[k - 2] redundant an das Nutzpaket PL[k] angehängt und zusammen mit diesem übertragen, wodurch beispielsweise die folgenden Übertragungspakete P[k] bereitgestellt werden:
- Falls bei diesem Schema ein Nutzpaket bei der Übertragung verlorengeht, kann das Empfangsende einfach eine redundante Kopie der Nutzlast aus einem der n folgenden Datenpakete herausziehen.
- Durch Anhängen von n vorhergehenden Nutzpaketen an jedes aktuelle Datenpaket P[k] wird es möglich, n verlorengegangene Pakete in einer Reihe wiederzugewinnen, ohne eine Neuübertragung anfordern zu müssen. Weil weiter vorhergehende Pakete mit jedem aktuellen Paket verkettet werden, kann das Netzwerk eine höhere Paketverlustrate tolerieren. Weiterhin beeinflußt dieses Verfahren nicht die Paketrate oder die Leitrate, weil, wie vorstehend erwähnt wurde, die Leitrate in erster Linie die Kopfinformationen in einem gegebenen Paket statt die Größe jedes Pakets betrifft. Dieses Verfahren erhöht jedoch leider durch Verketten mehrerer Nutzpakete die Datenrate notwendigerweise und erheblich. Um beispielsweise zwei verlorengegangene Pakete in einer Reihe (n = 2) korrigieren zu können, verdreifacht dieses Verfahren nahezu die Größe jedes Pakets. Dieses Verfahren ist daher auch nicht wünschenswert.
- Stattdessen sieht die vorliegende Erfindung vorteilhafterweise ein geeignetes und weniger kostspieliges Schema zum Korrigieren eines Paketverlusts vor, wobei die Übertragungszeit nur um eine sehr geringe Verzögerung erhöht wird. Das Verfahren verwendet vorzugsweise eine Codierungstechnik, bei der aktuellen Paketen zugeordnete Paritätsbits von künftigen Paketen getragen werden. Statt mehrere vorhergehende Nutzpakete mit jedem aktuellen Nutzpaket zu verketten (und die Datenrate damit stark zu vergrößern), erfordert die bevorzugte Ausführungsform der vorliegenden Erfindung das Verketten eines einzigen Vorwärtsfehlerkorrekturcodes (FEC-Codes) (Blockcodes oder Redundanzblocks) mit spezifischen Nutzpaketen oder mit jedem Nutzpaket in einer Art, die das Wiedergewinnen mehrerer verlorengegangener Pakete in einer Reihe ermöglicht.
- Wenn gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung eine Sequenz von Nutzblöcken übertragen wird, werden jeweils k Nutzblöcke in der Sequenz durch einen Blockcodierer geführt, um p = n - k Vorwärtsfehlerkorrekturcodes (FEC-Codes) oder Redundanzblöcke zu erzeugen, wobei p ≤ k ist. (Wie das nachstehende Beispiel zeigt, könnte p = 1 sein, diese Beschreibung bezieht sich zu Erläuterungszwecken jedoch auf einen größeren Wert von p.) Diese p Redundanzblöcke werden dann jeweils mit den nächsten p übertragenen Nutzblöcken verkettet. Falls wiederum am Empfangsende ein Paket verlorengeht, kann die zugeordnete Nutzlast aus den von den geeigneten Paketen übertragenen Redundanzblöcken extrahiert bzw. gewonnen werden.
- Die vorliegende Erfindung kann im wesentlichen jeden derzeit bekannten oder später entwickelten Blockcodierer verwenden, um die erforderlichen p Redundanzblöcke zu erzeugen. Natürlich kann die Auswahl eines Blockcodierers einschließlich der Auswahl der vom Codierer verwendeten (n, k)-Werte von einer Anzahl von Faktoren einschließlich der für die spezifizierte Anwendung erforderlichen Effizienz abhängen. Bei der bevorzugten Ausführungsform verwendet die Erfindung zur Übertragung von Echtzeit-Mediensignalen über das Internet die wohlbekannte Reed-Solomon-(RS)-Codeklasse über dem 2&sup8;-Galoisschen Feld. Diese auch als RS-Löschcodes bezeichneten Codes sind hinsichtlich ihrer Fähigkeit, gelöschte Bytes zu korrigieren, optimal. Beispielsweise können unter der Voraussetzung, daß 8 Bytes mit drei Paritätsbytes (insgesamt 11 Bytes) geschützt werden, beliebige drei Bytes verlorengehen und die ursprünglichen 8 Bytes noch wiedergewonnen werden.
- In Fig. 2 ist als Beispiel ein erfindungsgemäß arbeitender Codierer 10 dargestellt. In dem gezeigten Beispiel kommt ein Strom von Paketen oder Nutzblöcken mit fester Länge an. Es sind die ersten sechs dieser Nutzblöcke, PL[1] bis PL[6], dargestellt. Für die Zwecke dieses Beispiels ist der erfindungsgemäß verwendete Codierer ein RS-Blockcodierer mit (n, k) Werten von (5, 3). Demgemäß leitet der Codierer für jeweils drei Nutzblöcke in der eingehenden Sequenz zwei FEC-Codes oder Redundanzblöcke FEC0 und FEC1 ab. Erfindungsgemäß hängt der Codierer diese Redundanzblöcke dann jeweils an die nächsten zwei Nutzblöcke an, die die ersten zwei Nutzblöcke in der nächsten Dreiergruppe sind.
- Mit Bezug auf Fig. 2 sei bemerkt, daß der Codierer 10, wenn jeder der ersten drei Nutzblöcke PL[1], PL[2] und PL[3] ankommt, Kopien dieser Nutzblöcke in den Speicher schreibt, um diese beim Erzeugen der erforderlichen Redundanzblöcke zu verwenden. Der Codierer leitet dann jeden dieser drei Nutzblöcke zu einem Paketierer 12, der Kopfinformationen hinzufügt und die sich ergebenden Pakete P[1], P[2] und P[3] zur Übertragung zu dem Netzwerk 14 weiterleitet. (Zu Beispielszwecken sind die Kopfinformationen oder andere Overhead-Informationen, die in diesen ausgegebenen Paketen enthalten sind, in Fig. 2 nicht dargestellt.) Weil diese die ersten drei. Nutzblöcke sind, werden diese ohne hinzugefügte Redundanzblöcke übertragen.
- Unter Verwendung der Kopien der Nutzblöcke PL[1], PL[2] und PL[3], die im Speicher gespeichert sind, leitet der Codierer zwei Redundanzblöcke, nämlich FEC0 und FEC1, ab, wie in Abschnitt 14 in Fig. 2 angegeben ist. Insbesondere bearbeitet der RS-Blockcodierer die Nutzsymbole symbolweise (beispielsweise byteweise), um entsprechende Bits der FEC- Symbole zu erzeugen. Das am weitesten links liegende Symbol von jedem der Nutzblöcke PL[1], PL[2] und PL[3] wird verwendet, um die am weitesten links liegenden Symbole der Redundanzblöcke abzuleiten, das nächste Symbol von jedem der Nutzblöcke PL[1], PL[2] und PL[3] wird verwendet, um die nächstgelegenen Symbole der Redundanzblöcke abzuleiten, usw. Dadurch ist die Größe der erfindungsgemäß verwendeten Redundanzblöcke in der gleichen Ordnung bzw. Größenordnung wie diejenige der Nutzblöcke, mit denen diese verkettet werden.
- Nach Erzeugen der Redundanzblöcke FEC0 und FEC1 löscht der Codierer vorzugsweise die Nutzblöcke PL[1], PL[2] und PL[3], schreibt Kopien der nächsten drei Nutzblöcke PL[4], PL[5] und PL[6] in einen Speicher und verkettet die zwei Redundanzblöcke, die von den Nutzblöcken PL[1], PL[2] und PL[3] abgeleitet wurden, mit jeweiligen Nutzblöcken PL[4] und PL[5]. Zum Fortsetzen einer stetigen Übertragung übergibt der Codierer dann die verketteten Symbole {PL[4], FEC0} und {PL[5], FEC1} sowie Nutzblock PL[6] an den Paketierer 12, um die Pakete P[4], P[5] und P[6] zur Übertragung an das Netzwerk zu erzeugen.
- Wenngleich in Fig. 1 nur die ersten sechs Nutzblöcke und die sich ergebenden Pakete dargestellt sind, wird verständlich sein, daß dieser Prozeß fortgesetzt wird, solange ein Nutzstrom weiterhin an dem Codierer ankommt. Demgemäß weisen die ersten zwei Pakete in jeder Gruppe von drei zu dem Netzwerk übertragenen Paketen bei Verwendung eines Blockcodierers mit (n, k) Werten von (5, 3) jeweils vorzugsweise einen von den Nutzblöcken in den vorhergehenden drei Paketen abgeleiteten Redundanzblock auf.
- Es wird natürlich auch verständlich sein, daß die vorliegende Erfindung nicht darauf beschränkt ist, die Redundanzblöcke spezifisch an die nächsten Nutzpakete anzuhängen, die der Gruppe folgen, von der die Redundanzblöcke abgeleitet worden sind, sondern daß auch andere Anordnungen verwendet werden können. Beispielsweise könnten bei Verwendung eines (5, 3)-Blockcodierers, wie vorstehend erörtert wurde, die zwei von den Nutzblöcken PL[i], PL[i + 1] und PL[i + 2] abgeleiteten Redundanzblöcke FEC0 und FEC1 jeweils regelmäßig mit PL[i + 4] und PL[i + 5] statt mit PL[i + 3] und PL[i + 4] verkettet werden.
- Da ein gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung arbeitender Codierer ein RS-Blockcodierer ist, wird gemäß der Erfindung angenommen, daß die kombinierten Nutzblöcke alle die gleiche Länge (beispielsweise die gleiche Anzahl von Bits) aufweisen. Bei einer geringfügigen Anpassung funktioniert die Erfindung jedoch genauso gut in einem Netzwerk von Paketen mit variabler Länge (und/oder von Paketen mit fester Länge). Bei Nutzblöcken verschiedener Längen wird gemäß der Erfindung erwogen, die kürzeren Nutzblöcke in jeder Gruppe von k Nutzblöcken (im vorstehenden Beispiel jeweils drei Nutzblöcke) mit Nullen aufzufüllen, so daß alle k Blöcke die gleiche Länge aufweisen. Falls bei einem (5, 3)-Blockcodierer beispielsweise die ersten zwei von drei eingehenden Nutzblöcken 16 Bits lang sind, der dritte jedoch 24 Bits lang ist, füllt der Codierer die ersten zwei Blöcke mit 8 Nullbits auf, so daß alle drei Blöcke 24 Bits lang sind. Der Codierer leitet dann die erforderlichen Redundanzblöcke FEC0 und FEC1 ab, von denen jeder in diesem Beispiel auch 24 Bits lang ist.
- Um Bandbreite zu sparen, entfernt der erfindungsgemäße Codierer dann vorzugsweise jegliche eingefüllten Nullen aus den Nutzblöcken, bevor die Blöcke zum Paketieren und zur Übertragung zu dem Paketierer weitergeleitet werden. Um das Wiedergewinnen verlorengegangener Pakete (also das Decodieren) an dem Empfangsende zu erleichtern, verkettet der Codierer jedoch gleichzeitig vorzugsweise mit jedem Nutzblock einen Hinweis dazu, wie lang der Nutzblock für das Decodieren sein muß. Falls zusätzlich ein Redundanzblock in ein Paket aufzunehmen ist, nimmt der erfindungsgemäße Codierer vorzugsweise in dem verketteten Symbol einen Hinweis auf, wie lang der Redundanzblock ist, um anzugeben bzw. anzuzeigen, wo der Redundanzblock endet. Demgemäß fügt der Codierer im vorstehenden Beispiel dem Symbol bevorzugt beispielsweise Zusatzbits hinzu, die angeben, daß der Nutzblock zum Decodieren 24 Bits lang sein muß, und der Codierer fügt dem Symbol Zusatzbits hinzu, die angeben, daß der Redundanzblock 24 Bits lang ist.
- Folglich weist ein Paket, das erfindungsgemäß übertragen wird, zum Erleichtern des Decodierens gemäß der bevorzugten Ausführungsform vorzugsweise Angaben der Sequenznummer oder der Paketnummer, der (n, k)-Werte, der Nutzlast/Daten- Länge, des Nutzlast/Daten-Blocks, der Redundanzblocklänge (falls vorhanden) und eines Redundanzblocks (falls vorhanden) auf. In Fig. 3 ist ein Beispiel eines diese Informationen enthaltenden Pakets dargestellt, wobei der Codierer einen Blockcodierer unter Verwendung von (n, k)-Werten (6, 5) (d. h. p = 1) verwendet und wobei ein Redundanzblock (FEC) mit einem Nutzblock verkettet worden ist. Es wird verständlich sein, daß die (n, k)-Werte alternativ vorab vereinbart werden könnten, so daß die Werte von n und k nicht in jeden Paketkopf aufgenommen werden müssen.
- In den meisten Fällen werden die gemäß der vorliegenden Erfindung codierten Informationspakete von einem sendenden Ende zu einem empfangenden Ende erfolgreich über ein Netzwerk übertragen. Wie vorstehend erörtert wurde, kann unterwegs jedoch eine Anzahl dieser Pakete verlorengehen und nie zu dem empfangenden Ende gelangen. Im Internet ist es beispielsweise normal, daß 3% bis 5% und sogar bis zu 20% der Pakete verlorengehen. Daher sollte an dem empfangenden Ende ein Decodierer vorhanden sein, um fehlende Pakete wiederzugewinnen.
- In Fig. 4 ist ein Decodierer 20 dargestellt, der gemäß einer bevorzugten Ausführungsform der Erfindung arbeitet. Wie in Fig. 4 dargestellt ist, kommt ein Strom von Paketen an dem empfangenden Ende an. Diese Pakete kommen wie dargestellt in sequentieller Reihenfolge an. Es wird jedoch verständlich sein, daß die vorliegende Erfindung nicht auf eine sequentielle Paketübertragung beschränkt ist. Vielmehr können diese Pakete abhängig vom verwendeten Paketvermittlungsprotokoll in sequentieller Reihenfolge oder außerhalb der Reihenfolge ankommen. Ein Paketvermittlungsprotokoll, wie beispielsweise ATM, überträgt Pakete sequentiell. Bei anderen Übertragungssystemen könnten jedoch sequentiell numerierte Pakete auf andere Weise durch ein Netzwerk geleitet werden und daher nicht in deren ursprünglicher Sequenz an dem empfangenden Ende ankommen.
- Wie in dem Beispiel aus Fig. 4 dargestellt ist, sind alle Pakete P[1] bis P[6] mit Ausnahme des Pakets P[3] erfolgreich an dem empfangenden Ende angekommen. Gemäß der vorliegenden Erfindung wird jedes dieser Pakete durch einen Entpaketierer 22 analysiert bzw. untergliedert, um Nutz- oder Redundanzblöcke von Paketkopfinformationen zu entfernen. Jene Nutzblöcke, die erfolgreich angekommen sind, werden vorzugsweise direkt zu einem dynamischen Puffer 24 weitergeleitet, der dazu dient, die Nutzblöcke in die richtige Sequenz zum Empfang durch einen Endbenutzer zu bringen.
- Zusätzlich werden die analysierten Nutzblöcke und Redundanzblöcke nach Bedarf in dem Speicher gespeichert, wobei der Speicherplatz vorzugsweise entsprechend der Nutzlänge und der Redundanzlänge zugewiesen wird, die im Paket angegeben waren. Zum Erleichtern des Decodierens und der Wiedergewinnung verlorengegangener Pakete kann die Anzahl der in dem Speicher gespeicherten Blöcke von den (n, k)-Werten des ursprünglich für das Codieren verwendeten Blockcodierers abhängen. In dem dargestellten Beispiel fehlt das Paket P[3] (und daher der Nutzblock PL[3]). Weiterhin sei angenommen, daß die (n, k)-Werte des Codierers (5, 3) sind. Dementsprechend speichert der Decodierer 20 in einem Speicher mindestens Nutzblöcke PL[1] und PL[2] und Redundanzblöcke FEC0 und FEC1. Ein Decodierer 20 braucht in diesem Beispiel nicht Nutzblöcke PL[4], PL[5] und PL[6] in einem Speicher speichern, weil in dieser Dreiergruppe (k) keine Nutzlast fehlt. Dennoch sind zum Darstellen des Zusammenhangs Pakete P[4], P[5] und P[6] in dem Decodierer dargestellt.
- Bei der bevorzugten Ausführungsform empfängt jeder Zeitdecodierer 20 neue Daten und bestimmt, ob die neuen Daten dabei helfen können, fehlende Informationen wiederzugewinnen. Demgemäß erkennt der Decodierer 20 in dem in Fig. 4 dargestellten Beispiel, nachdem dieser Nutzblöcke PL[1], PL[2] und PL[4] und einen Redundanzblock FEC0 (der mit Nutzblock PL[4] übertragen wurde) empfangen hat, daß Nutzblock PL[3] fehlt. Wenn der in diesem Beispiel verwendete (5, 3)-RS-Blockcodierer gegeben ist, kann der Decodierer 20 den fehlenden Nutzblock PL[3] wiedergewinnen. Insbesondere kann der Decodierer 20 einen (5, 3)-RS-Decodierer verwenden, um bei gegebenem PL[1], PL[2] und FEC0 PL[3] abzuleiten.
- Sobald der Decodierer 20 den fehlenden Nutzblock PL[3] wiedergewonnen hat, übergibt dieser PL[3] an den dynamischen Puffer 24. Der dynamische Puffer 24 ordnet PL[3] wiederum in sequentieller Reihenfolge zwischen Nutzblöcke PL[2] und PL[4] an und leitet die geordnete Nutzlast zu dem Endbenutzer weiter.
- Wie Fachleute in dem gezeigten Beispiel anhand des vorstehend Erwähnten verstehen werden, ist der RS- Blockdecodierer, wenn beliebige zwei von drei sequentiellen Nutzblöcken verlorengehen, in der Lage, die verlorengegangenen Daten wiederzugewinnen, solange der erforderliche Redundanzblock ankommt (die erforderlichen Redundanzblöcke ankommen). Falls in dem Beispiel insbesondere bis zu zwei der Pakete P[1], P[2] und P[3] verlorengehen, kann der Decodierer 20 die verlorengegangene Nutzlast wiedergewinnen, solange die Pakete P[4] und P[5] und daher die Redundanzblöcke FEC0 und FEC1 erfolgreich ankommen. Es sei bemerkt, daß, wenn nur ein Paket P[1], P[2] oder P[3] verlorengeht, nur ein Paket P[4] oder P[5] ankommen muß, da ein FEC-Block ausreicht, um einen verlorengegangenen Datenblock wiederherzustellen.
- Die vorliegende Erfindung ermöglicht demgemäß günstigerweise die Korrektur von Burstfehlern (dem Verlust mehrerer sequentieller Pakete in einer Reihe), solange die erforderlichen Redundanzblöcke erfolgreich ankommen. Es wird in dieser Hinsicht weiterhin daran gedacht, daß eine sogar noch robustere Lösung des Paketverlusts erreicht werden kann, indem die Redundanzblöcke oder Teile bzw. Abschnitte der Redundanzblöcke innerhalb der k Pakete, die diesen von dem Ort aus folgen, wo die Redundanzblöcke abgeleitet wurden, weit verteilt werden, statt daß die Redundanzblöcke in benachbarten Paketen angeordnet werden. Hierdurch kann es eine geringere Wahrscheinlichkeit geben, daß die Redundanzblöcke selbst infolge eines Burstfehlers verlorengehen.
- Es ist, wie vorstehend erwähnt wurde, durch Auswählen der gewünschten (n, k)-Werte möglich, die Effizienz des von der vorliegenden Erfindung bereitgestellten Korrekturmechanismus zu ändern. Es wird in dieser Hinsicht verständlich sein, daß die Auswahl dieser Werte auf dem Gleichgewicht zwischen der Verzögerung und der Burst-Wiedergewinnung beruht. Wenn höhere p-Werte verwendet werden, ist der Decodierer in der Lage, mehr auf einmal verlorengegangene Pakete wiederherzustellen. Wenn höhere k-Werte verwendet werden, muß der Decodierer gleichzeitig länger warten, um verlorengegangene Pakete wiederherzustellen, was, wie vorstehend erklärt wurde, für die Übertragung von Echtzeit-Mediensignalen, wie Sprachsignalen, Videosignalen oder Audiosignalen, unerwünscht ist.
- Beispielsweise leitet ein Codierer unter Verwendung der (n, k)-Werte (10, 9) einen Redundanzblock von jeweils neun Nutzblöcken ab und nimmt diesen Redundanzblock in eines der nächsten neun Pakete auf. Falls dann bei der Übertragung genau eines von neun sequentiellen Paketen verlorengeht, kann die verlorengegangene Nutzlast, wie vorstehend beschrieben, wiederhergestellt werden. Falls jedoch mehr als eines von neun Paketen bei der Übertragung verlorengeht, ermöglicht der eine redundante Block nicht die Wiedergewinnung aller verlorengegangenen Pakete.
- Bei Verwendung der (n, k)-Werte (10, 8) erzeugt der Codierer gemäß der bevorzugten Ausführungsform stattdessen zwei RS-codierte Redundanzblöcke von jeweils acht Nutzblöcken und nimmt diese Redundanzblöcke in zwei der nächsten acht Nutzblöcke auf. Es ist mit dieser Einstellung erfindungsgemäß möglich, bis zu zwei beliebige von acht sequentiellen Paketen zu verlieren und diese verlorengegangenen Pakete unter Verwendung der zwei RS-codierten Redundanzblöcke wiederzugewinnen.
- Für Übertragungen codierter Sprachsignale über das Internet ist ein RS-Codierer unter Verwendung der (n, k)-Werte (4, 3) bevorzugt. Mit diesen Werten kann das Übertragungssystem einen Verlust von einem von jeweils vier Paketen überstehen, was einer Verlustrate von 25% entspricht.
- Dagegen ist für Übertragungen codierter Videosignale über das Internet ein RS-Codierer unter Verwendung der (n, k)- Werte (18, 9) bevorzugt. Diese Werte stellen neun Redundanzblöcke bereit und ermöglichen daher die Wiedergewinnung bzw. Wiederherstellung bei einem Verlust von neun von jeweils achtzehn Paketen. Diese (n, k)-Werte funktionieren besonders gut in Zusammenhang mit dem H.263- Videocodierungsstandard mit niedriger Bitrate, der gegenwärtig von der International Telecommunications Union empfohlen wird, weil der H.263-Standard ein Einteilen eines einzigen Videorahmens in 9 Stücke oder Pakete fordert. Daher könnte jeder Videorahmen erfindungsgemäß getrennt korrigiert werden, solange der nächste Videorahmen vollständig ankommt.
- Wenngleich ein gemäß der vorliegenden Erfindung arbeitender Codierer oder Decodierer eine von einer Vielzahl von Formen (wie bspw. Hardware, Software oder Firmware) annehmen kann, werden sowohl die Codierungs- als auch die Decodierungsfunktionen vorzugsweise von einem Computerprozessor ausgeführt, der mit einem Satz von Maschinensprachebefehlen arbeitet, die in einem Speicher gespeichert sind.
- Wie vorstehend erläutert, bietet die vorliegende Erfindung einen rechnerisch einfachen Mechanismus zum Codieren und Decodieren einer Folge bzw. Sequenz von Paketen zum Wiedergewinnen bzw. Wiederherstellen verlorengegangener Pakete. Die Erfindung erreicht diese Funktion vorteilhafterweise ohne ein Erhöhen der Paketrate und ohne ein erhebliches Erhöhen der Datenrate der Übertragung über den zu spezifizierten Paketen hinzugefügten einzigen FEC-Block (und einen trivialen Betrag eines anderen Overheads) hinaus. Wenn der Wert von p erhöht wird, ermöglicht die vorliegende Erfindung günstigerweise die Wiedergewinnung nach größeren Burstfehlern. Die vorliegende Erfindung bietet demgemäß einen leistungsfähigen Mechanismus zum Verringern der Wirkung von Paketverlusten.
- Gemäß einer anderen bevorzugten Ausführungsform der vorliegenden Erfindung wird ein einziger FEC-Block an jedes Nutzpaket angehängt. Dieser einzige FEC-Block weist in etwa die gleiche Größe auf wie das Nutzpaket und wird berechnet, indem das XOR-(Exklusiv-Oder bzw. )-Produkt einer vorgegebenen Anzahl w vorhergehender Nutzpakete gebildet wird, wobei w vorzugsweise größer als 1 ist. Falls ein Paket verlorengeht, kann die zugeordnete Nutzlast wiederum an dem empfangenden Ende aus der XOR-Summe extrahiert werden, die von einem oder mehreren nachfolgenden Datenpaketen getragen wird.
- Im allgemeinen erfordert die vorliegende Erfindung daher das Einrichten eines Vorwärtsfehlerkorrekturcodes FEC[k] für jedes Nutzpaket P[k], wobei FEC[k] = PL[k - 1] PL[k - 2] , ..., PL[k - w] ist und wobei w eine positive ganze Zahl ist, die im allgemeinen größer als 1 ist. Dieses FEC[k] wird dann auf die Nutzlast PL[j] gegeben, wobei j > k ist. Das sich ergebende Paket P [k] ist daher die Verkettung der Nutzlast und des FEC. P[k] = {PL[k], FEC[k]}. In Fig. 5 ist ein Datenstrom dargestellt, der eine Sequenz von Paketen enthält, die auf diese Weise mit ihren zugeordneten Vorwärtsfehlerkorrekturcodes verkettet sind.
- Die vorgegebene Zahl w definiert ein Gleitfenster, über das der XOR-Vorgang ausgeführt wird, und diese definiert daher die Länge eines Burstfehlers oder eine Anzahl von verlorengegangenen Paketen in einer Reihe, von denen sich das System erholen kann. Als ein Blockcodierer, der jedem Datenpaket auf Grundlage der vorhergehenden w Datenpakete einen einzigen Redundanzblock hinzufügt, ist verständlich, daß die vorliegende Erfindung (n, k)-Werte von
- k = w
- und
- n = k + 1
- verwendet.
- Falls bspw. demgemäß das Gleitfenster w = 5 ist, sind die (n, k)-Werte des XOR-Blockcodierers erfindungsgemäß (6, 5).
- Durch wiederholtes Erzeugen von Blockcodes gemäß einem Gleitfenster über einer Sequenz von Paketen werden die Paketdaten in mehreren Blockcodes statt in nur einem einzigen Blockcode verwendet. Folglich sieht die vorliegende Erfindung eine Redundanz hoher Ordnung vor und ermöglicht die Wiedergewinnung mehrerer verlorengegangener Pakete in einer Reihe, wobei nur ein einziger Redundanzblock je Paket erforderlich ist.
- Zum besseren Verständnis der Funktionsweise dieses Gleitfensters zeigt Fig. 6 mehrere Stufen eines gemäß einer bevorzugten Ausführungsform der Erfindung arbeitenden Codierers. In Fig. 6 ist angenommen, daß 10 Pakete (mit 1-10 numeriert) in einem Netzwerk zu übertragen sind und daß die Fenstergröße w = 3 ist. In der ersten dargestellten Stufe überdeckt das Fenster w Nutzpakete PL[1] - PL[3], so daß der Codierer FEC[4] = PL[1] PL[2] PL[3] berechnet. Der Codierer hängt dann diesen FEC[4]-Redundanzblock an ein Nutzpaket PL[4] an und gibt das sich ergebende Paket P[4] = {PL[4], FEC[4]} zur Übertragung an das empfangende Ende aus. Das Fenster w überdeckt in der nächsten dargestellten Stufe wiederum Nutzpakete P[2] - P[4], so daß der Codierer FEC[5] = PL[2] PL[3] PL[4] berechnet. Der Codierer hängt dann diesen FEC[5]-Redundanzblock an das Nutzpaket PL[5] an und gibt das sich ergebende Paket P[5] = {PL[5], FEC[5]} zur Übertragung an das empfangende Ende aus. Wie teilweise in der Figur dargestellt ist, wird dieser Prozeß fortgesetzt, solange die Folge von Nutzpaketen fortgesetzt wird.
- Die Verwendung des XOR-Vorgangs nimmt an, daß die kombinierten Pakete die gleiche Länge (beispielsweise die gleiche Anzahl von Bits) aufweisen. Die vorliegende Erfindung funktioniert jedoch ebenso gut in einem Netzwerk von Paketen mit veränderlicher Länge. Wenn Pakete verschiedener Längen bereitgestellt werden, wird gemäß der Erfindung daran gedacht, die kürzeren Pakete mit Nullen aufzufüllen, so daß alle in einem einzigen XOR-Vorgang kombinierten Pakete sowie die sich ergebende XOR-Summe die Länge der längsten Einheit von diesen annehmen. Sobald der XOR-Codiervorgang abgeschlossen ist, werden die zusätzlichen Nullen von jedem aufgefüllten Paket fallengelassen, und das von seiner Füllung befreite Paket wird zur Übertragung auf das Netzwerk gegeben (zusammen mit einem Redundanzblock, der auf den vorhergehenden w Paketen beruht). Bei dieser Variation können zusätzliche Codes dem Kopf hinzugefügt werden, um die Längen der Datenblöcke und des Redundanzblocks anzugeben und dadurch das erfindungsgemäße Decodieren zu erleichtern.
- Es sei weiterhin bemerkt, daß der gemäß der vorliegenden Erfindung betrachtete FEC natürlich nicht darauf beschränkt ist, daß dieser gleich der vorstehend beschriebenen XOR- Summe ist, sondern daß dieser nach Bedarf auch andere Modifikationen aufweisen kann. Die vorliegende Erfindung erstreckt sich beispielsweise auf die Verwendung eines FECs, der unter Verwendung einer XOR-Summe der vorhergehenden w Nutzpakete und durch dann erfolgendes Invertieren von einer oder mehreren vorgegebenen Ziffern oder durch zyklisches Verschieben des Codes oder des sich ergebenden Pakets berechnet wird. Weiterhin ist es verständlich, daß die vorstehende Gleichung nur zu Erläuterungszwecken dargelegt ist und daß die vorliegende Erfindung nicht notwendigerweise auf die Verwendung der XOR-Summe von 3 oder mehr (k - 1, k - 2, ..., k - w) vorhergehenden Nutzpaketen beschränkt ist, und daß sich die Erfindung beispielsweise auch auf die XOR- Summe nur der vorhergehenden zwei Nutzpakete erstrecken kann. Es sei weiterhin bemerkt, daß die in Fig. 1 dargestellte Sequenz nur als Beispiel dargestellt ist und daß sich die vorliegende Erfindung genauso auf die getrennte und unabhängige Übertragung von Paketen P[k] {PL[k], FEC[k]} durch ein paketvermitteltes Netzwerk erstrecken kann.
- Als ein allgemeines Beispiel des gemäß der vorliegenden Erfindung vorgesehenen Codier- und Decodierprozesses wird nachfolgend die Struktur einer Reihe von einem Codierer erzeugter Nutzpakete P[k] bei einem gegebenen Nutzrahmen PF[k] und einem Fenster w = 3 erläutert:
- Es sei angenommen, daß das Paket P[5] bei der Übertragung verlorengegangen ist. Gemäß der vorliegenden Erfindung kann ein Decodierer das Paket P[5] unter Verwendung des FEC der Pakete, in denen das Paket P[5] enthalten war, wieder erzeugen. Weil w = 3 ist, beruhen in diesem Fall die drei Pakete, die dem Paket P[5] folgen, jeweils teilweise auf dem Wert des Nutzpakets PL[5]. Folglich kann ein Nutzpaket PL[5] wiedergewonnen werden, indem beliebige der Gleichungen gelöst werden, die diese drei Pakete definieren. Beispielsweise ergibt sich unter Verwendung des Pakets P[8]
- FEC[8] = PL[7] PL[6] PL[5]
- und PL[5] = FEC[8] PL[7] PL[6].
- Dieses Beispiel kann erweitert werden, um zu zeigen, daß die vorliegende Erfindung bei einem Fenster w = 3 das Wiedergewinnen von drei in einer Reihe verlorengegangenen Paketen ermöglicht. Es sei beispielsweise angenommen, daß die Pakete P[4], P[5] und P[6] verlorengegangen sind. Um die von diesen verlorengegangenen Paketen übertragene Nutzlast wiederzugewinnen, müssen die nachfolgenden drei Pakete P[7], P[8] und P[9] erfolgreich angekommen sein. Wenn dem empfangenden Ende diese drei Pakete bereitgestellt sind, kann dieses zuerst ein Nutzpaket PL[6] folgendermaßen aus FEC[9] extrahieren:
- FEC[9] = PL[8] PL[8] PL[6]
- und PL[6] = FEC[9] PL[8] PL[7].
- Als nächstes kann das empfangende Ende ein Nutzpaket PL[5] folgendermaßen aus FEC[8] herausziehen:
- FEC[8] = PL[7] PL[6] PL[5]
- und PL[5] = FEC[8] PL [7] PL [6].
- Schließlich kann das empfangende Ende ein Nutzpaket PL[4] folgendermaßen aus FEC[7] gewinnen:
- FEC[7] = PL[6] PL[5] PL[4]
- und PL[4] = FEC[7] PL[6] PL[5].
- Vorstehend wurde ein einfacher Mechanismus zum Wiedergewinnen verlorengegangener Daten gemäß der vorliegenden Erfindung erläutert. Dieser Mechanismus funktioniert gut, wenn die übertragenen Pakete sequentiell ankommen, wie es bei der Übertragung von ATM-Zellen geschehen würde. Wenn Pakete sequentiell ankommen, kann ein verlorengegangenes Paket wiedergewonnen werden, sobald die nächsten w Pakete erfolgreich ankommen. Bei vielen Übertragungssystemen kommen die sequentiell numerierten Pakete, die in Reihenfolge über ein Netzwerk gesendet werden, jedoch nicht in ihrer ursprünglichen Sequenz an dem empfangenden Ende an.
- Um eine robustere Wiedergewinnung verlorengegangener Pakete zu ermöglichen, arbeitet eine bevorzugte Ausführungsform der Erfindung vorzugsweise folgendermaßen. An dem sendenden Ende übersetzt ein Codierer eingehende Daten unter Verwendung des erfindungsgemäßen XOR-Codiermechanismus in Pakete. Wie vorstehend beschrieben wurde, verwendet dieser XOR-Codierer ein Gleitfenster w, so daß die n- und k-Werte des Blockcodierers (n = k + 1, k = w) sind. Jedes Paket weist vorzugsweise eine Angabe der Sequenznummer (Paketnummer), der (n, k)-Werte, eines Nutz/Daten-Blocks und eines Redundanzblocks auf. Um weiterhin möglichen Variationen der Paketlänge Rechnung zu tragen, weist jedes Paket vorzugsweise auch eine Angabe der Datenlänge und eine Angabe der Redundanzlänge auf. In Fig. 7 ist ein Beispiel eines diese Informationen enthaltenden Pakets dargestellt, wobei der Codierer ein Gleitfenster w von 4 (d. h. k = 4) verwendet.
- An dem empfangenden Ende befindet sich ein Decodierer, um diese Pakete zu empfangen und jegliche verlorengegangenen Pakete wiederzugewinnen, die wiedergewonnen werden können. Gemäß der bevorzugten Ausführungsform der Erfindung speichert der Decodierer, wenn dieser ein Paket empfängt, das Paket in einem Speicher, zerlegt bzw. analysiert das Paket in dessen Komponenten und erzeugt eine "Blase" von Informationen (beispielsweise eine "c"-Struktur), die die Sequenznummer und Zeiger auf den Datenblock und den Redundanzblock in dem Paket enthält. Der Decodierer gibt die Blase dann durch Speichern eines Zeigers für die Blase in eine doppelt verknüpfte Liste. Weiterhin überträgt der Decodierer den Datenblock vorzugsweise zur Verwendung durch andere Elemente in dem Übertragungssystem stromabwärts.
- Bei der bevorzugten Ausführungsform bestimmt der Decodierer jedesmal dann, wenn dieser neue Informationen empfängt und der Verknüpfungsliste eine Blase hinzufügt, ob die Informationen in der Blase bei der Wiedergewinnung fehlender Informationen helfen können. Als Beispiel ist in Fig. 8 eine Reihe von einem Sampledecodierer zusammengestellter bzw. kompilierter Blasen 2-17 dargestellt. Wie in Fig. 8 dargestellt ist, wird angenommen, daß Blasen 9 und 12 fehlen, daß der Decodierer jedoch bisher ausreichend Pakete empfangen hat, um die für Blasen 2-8, 10-11 und 13-17 erforderlichen Informationen bereitzustellen. Es wird nun angenommen, daß ein Paket 9 ankommt. Der Decodierer empfängt das Paket 9 und fügt eine Blase 9 in die Verknüpfungsliste ein, um eine in Fig. 9 dargestellte revidierte Verknüpfungsliste zu erhalten.
- Da das Gleitfenster w in diesem Beispiel 4 ist (durch den in jedem empfangenen Paket enthaltenen Wert von k festgelegt), weiß der Decodierer, daß in einer geordneten Sequenz von Paketen jedes Paket durch eine XOR-Operation in Beziehung zu den vorhergehenden 4 Paketen sowie den folgenden 4 Paketen steht. Im vorliegenden Beispiel weiß der Decodierer daher, daß die von der Paketnummer 9 neu empfangenen Informationen dabei helfen können, verlorengegangene Daten in den Blasen 5-8 und 10-13 wiederzugewinnen, falls solche vorhanden sein sollten. Dieser Bereich kann als der relevante Bereich bezüglich der neu empfangenen Paketnummer 9 bezeichnet werden. Wenn dieser relevante Bereich bekannt ist, wird die Arbeit, die der Decodierer beim Empfangen eines neuen Pakets ausführen muß, um zu entscheiden, ob die Informationen in irgendeiner Weise helfen können, zweckmäßigerweise begrenzt.
- Bei der bevorzugten Ausführungsform analysiert der Decodierer den relevanten Bereich (5-13 in diesem Beispiel) folgendermaßen. Der Decodierer beginnt an dem Ende des Bereichs unter Berücksichtigung der Blasen 9-13, die als ein Analysefenster bezeichnet werden können. In diesem Analysefenster bestimmt der Decodierer zuerst, ob in dem Bereich 9-12 genau ein Datenblock fehlt, den der Redundanzblock 13, der in der Verknüpfungsliste liegen muß, wiederzugewinnen helfen kann (durch die XOR-Operation). Falls in dem Bereich 9-12 mehr als ein Datenblock fehlt, weiß der Decodierer, daß er mit der XOR-Operation keine Daten in dem Analysefenster wiedergewinnen kann. In diesem Fall oder falls der Decodierer in dem Analysefenster keine fehlenden Daten findet, bewegt der Decodierer das Analysefenster um einen Schlitz bzw. Spalt und wiederholt diese Analyse, nun für das durch die Blasen 8-12 definierte Analysefenster. Der Decodierer setzt diesen Prozeß fort, bis dieser seine Analyse mit dem Oberteil des Analysefensters an dem Oberteil des relevanten Bereichs, der in diesem Beispiel die Blase 5 ist, abschließt.
- Falls der Decodierer bestimmt, daß in einem gegebenen Analysefenster genau ein Datenblock fehlt, und wenn die letzte Blase in dem Analysefenster einen Redundanzblock enthält, dann kann der Decodierer die vorstehend erörterte XOR- Operation verwenden, um den fehlenden Datenblock wiederzugewinnen. Sobald er dies tut, empfängt er einen neuen Informationsbestandteil, nämlich den wiedergewonnenen Datenblock, was zu einem neuen relevanten Bereich führen sollte. Dadurch kann der Decodierer zu einer Blase mit einer höheren Nummer zurückspringen (also in der Verknüpfungsliste nach unten), wobei das Analysefenster zu einem Anfangspunkt mit einer höheren Nummer bewegt wird. Der Decodierer kann dann ein Bewegen des Analysefensters die Verknüpfungsliste hinauf fortsetzen, bis der Oberteil des Analysefensters den Oberteil des ursprünglichen relevanten Bereichs erreicht hat.
- Sobald in diesem Beispiel das Analysefenster beispielsweise über den Blasen 9-13 liegt, kann der fehlende Datenblock 12 wiedergewonnen werden, indem die XOR-Summe von Datenblöcken 9, 10 und 11 und eines Redundanzblocks 13 gebildet wird. Der Decodierer weist daher die neu empfangenen Informationen des Datenblocks 12 auf, was zu einem neuen relevanten Bereich von 8-16 (d. h. 8-12 und 12-16) führt.
- Folglich positioniert der Decodierer ein neues Analysefenster, um mit den Blasen 12-16 wieder zu beginnen und sich Blase für Blase nach oben zu bewegen, wie vorstehend erörtert wurde. Falls das Paket 15 beispielsweise noch nicht angekommen ist, Datenblöcke 12, 13 und 14 und ein Redundanzblock 16 jedoch angekommen sind, könnte der Decodierer den Datenblock 15 unter Verwendung der XOR-Operation berechnen.
- Es wird verständlich sein, daß demgemäß zwei Fenster von Analyseschleifen an der Operation teilnehmen. Ein erstes Fenster der Analyseschleife oder einer "äußeren Schleife" arbeitet infolge des Empfangs des Datenblocks 9. Ein zweites Fenster der Analyseschleife oder einer "inneren Schleife" arbeitet infolge der Wiedergewinnung des Datenblocks 12. Die äußere Schleife ist dafür ausgelegt, ein Analysefenster die Verknüpfungsliste hinauf zu bewegen, bis der Decodierer seine Analyse der Blasen 5-9 abgeschlossen hat. Die innere Schleife ist verglichen damit dafür ausgelegt, ein Analysefenster die Verknüpfungsliste hinauf zu bewegen, bis der Decodierer seine Analyse der Blasen 8-12 abgeschlossen hat.
- Um eine unnötige Wiederholung zu vermeiden, schließt ein gemäß der bevorzugten Ausführungsform der vorliegenden Erfindung arbeitender Decodierer die innere Schleife ab und bewegt sich dann weiter die Verknüpfungsliste hinauf, um die äußere Schleife abzuschließen, ohne dorthin zurückzuspringen, wo dieser angefangen hat, bevor dieser die innere Schleife begonnen hat. Demgemäß sind in dem vorstehenden Beispiel die von dem Decodierer ausgeführten Schritte durch die Klammern in Fig. 9 und durch die Reihen in Fig. 10 dargestellt. Wie in diesen Figuren dargestellt ist, analysiert der Decodierer in Schritt 1 zuerst Blasen 9-13 und gewinnt den verlorengegangenen Datenblock 12 wieder. In Schritt 2 springt der Decodierer daher zu einem Analysefenster über Blasen 12-16, wo der Decodierer keine neuen Daten wiedergewinnt. In den Schritten 3 bis 6 bewegt der Decodierer das Analysefenster Blase für Blase die Verknüpfungsliste hinauf, bis dieser die innere Schleife bei Blasen 8-12 abgeschlossen hat, wobei dieser an jedem Schritt keine neuen Daten wiedergewinnt.
- Als nächstes setzt der Decodierer statt des rekursiven Zurückkehrens zu der äußeren Schleife und des Wiederholens einer Analyse der Blasen 8-12 das Hinaufbewegen der Verknüpfungsliste von dort aus fort, wo dieser mit der inneren Schleife angefangen hat, wobei dieser die Blasen 7-11 in Schritt 7, Blasen 6-10 in Schritt 8 und Blasen 5-9 in Schritt 9 analysiert. In diesem Beispiel gewinnt der Decodierer auf dem Weg keine zusätzlichen Daten wieder. Nach Abschließen seiner Analyse der Blasen 5-9 ist die Analyse des Decodierers abgeschlossen, und der Decodierer wartet auf die Ankunft eines neuen Pakets, um mit einer weiteren Analyse zu beginnen.
- Wenngleich ein gemäß der vorliegenden Erfindung arbeitender Codierer oder Decodierer irgendeine einer Vielzahl von Formen annehmen kann (wie bspw. Hardware, Software oder Firmware), werden sowohl die Codier- als auch die Decodierfunktionen vorzugsweise durch einen Computerprozessor oder Mikroprozessor ausgeführt, der mit einem Satz in einem Speicher gespeicherter Maschinensprachebefehlen arbeitet.
- Der Computerprozessor und/oder die Maschinensprachebefehle, die die Codierfunktion erfindungsgemäß ausführen, können als ein erstes Segment einer Kommunikationsvorrichtung bezeichnet werden, und eine Vorrichtung, die die sich ergebenden codierten Pakete erfindungsgemäß überträgt, kann als ein zweites Segment der Kommunikationsvorrichtung bezeichnet werden. Der Computerprozessor und/oder die Maschinensprachebefehle, die ein verlorengegangenes Nutzpaket durch Extrahieren von Informationen aus anderen Paketen wieder erzeugen, können wiederum als ein drittes Segment der Kommunikationsvorrichtung bezeichnet werden. Es wird alternativ verständlich sein, daß die verschiedenen zum Verwirklichen der vorliegenden Erfindung erforderlichen Komponenten in andere Segmente einer Kommunikationsvorrichtung unterteilt werden können.
- Wie vorhergehend erläutert wurde, sieht die vorliegende Erfindung einen rechnerisch einfachen Mechanismus zum Codieren und Decodieren einer Sequenz von Paketen zum Wiedergewinnen bzw. Widerherstellen verlorengegangener Pakete vor. Die Erfindung erreicht diese Funktion vorteilhafterweise ohne eine Erhöhung der Paketrate und ohne eine erhebliche Erhöhung der Datenrate der Übertragung über den zu jedem Nutzpaket hinzugefügten einzigen FEC-Block (und einen trivialen Betrag anderen Overheads) hinaus. Wenn die Fenstergröße w erhöht wird, ermöglicht die vorliegende Erfindung günstigerweise unter Voraussetzung einer erfolgreichen Übertragung und eines erfolgreichen Empfangs ausreichend benachbarter Datenblöcke die Wiedergewinnung nach größeren Burstfehlern. Die vorliegende Erfindung bietet folglich einen leistungsfähigen Mechanismus zum Verringern der Wirkung von Paketverlusten durch Erzeugen einer Redundanz hoher Ordnung durch die Verwendung eines Gleitfensters und eines wirksamen Vorwärtsfehlerkorrekturcodes, wie vorstehend beschrieben wurde.
Claims (34)
1. Verfahren zum Codieren von Paketen aus einer Sequenz
bzw. Folge von Nutzblöcken, um eine Rückgewinnung bzw.
Wiederherstellung von verlorenen Paketen in einem
paketvermittelten Telekommunikationsnetzwerk zu ermöglichen, in dem
Leitrechner bzw. Router Pakete basierend auf Informationen,
die in den Paketköpfen enthalten sind, leiten, wobei die
Sequenz von Nutzblöcken eine sequentielle Gruppe von k
Nutzblöcken und eine nachfolgende sequentielle Gruppe von
Nutzblöcken umfaßt, wobei das Verfahren gekennzeichnet ist
durch:
Ableiten von p Redundanzblöcken von der sequentiellen
Gruppe von k Nutzblöcken, und
Erzeugen von p Paketen durch einen Prozeß, der ein
Kombinieren jedes der p Redundanzblöcke jeweils mit einem
Nutzblock in der nachfolgenden sequentiellen Gruppe der
Nutzblöcke umfaßt, wobei jedes der p Pakete einen Nutzblock und
einen der p Redundanzblöcke enthält.
2. Verfahren nach Anspruch 1, bei dem der Schritt des
Ableitens von p Redunzanblöcken die Anwendung eines Reed-
Solomon-Blockcodierers umfaßt.
3. Verfahren nach Anspruch 1 oder 2, bei dem die
nachfolgende sequentielle Gruppe von Nutzblöcken die k Nutzblöcke
sind, die als nächste in der Reihe nach der sequentiellen
Gruppe von k Nutzblöcken folgen.
4. Verfahren nach einem der vorstehenden Ansprüche, bei
dem die Nutzblöcke kooperativ ein Echtzeit-Mediensignal
repräsentieren, das aus einer Gruppe ausgewählt ist, die aus
Ton- und Bildsignalen besteht.
5. Verfahren nach einem der vorstehenden Ansprüche, bei
dem p = 1 ist.
6. Verfahren nach Anspruch 5, bei dem der Schritt des
Ableitens eines Redundanzblockes von einer sequentiellen
Gruppe von k Nutzblöcken den Schritt des Berechnens einer
XOR-Summe von den k Nutzblöcken umfaßt.
7. Verfahren nach Anspruch 6, bei dem die nachfolgende
sequentielle Gruppe von Nutzblöcken die p Nutzblöcke sind,
die als nächstes in der Reihe nach der sequentiellen Gruppe
von k Nutzblöcke folgen.
8. Verfahren nach einem der Ansprüche 1 bis 4, das
weiterhin gekennzeichnet ist durch den Schritt des Übertragens
der p Pakete in das Netzwerk, wobei die p Pakete der Reihe
nach der Sequenz bzw. Reihenfolge der Nutzblöcke
entsprechen.
9. Vorrichtung zum Codieren von Paketen aus einer Sequenz
von Nutzblöcken, um eine Wiederherstellung bzw.
Rückgewinnung von verlorenen Paketen in einem paketvermittelten
Telekommunikationsnetzwerk zu ermöglichen, in dem Leitrechner
bzw. Router Pakete basierend auf Informationen leiten, die
in den Paketköpfen enthalten sind, wobei die Sequenz von
Nutzblöcken eine sequentielle Gruppe von k Nutzblöcken und
eine nachfolgende sequentielle Gruppe von Nutzblöcken
enthält, und wobei die Vorrichtung einen Computerprozessor und
einen Speicher aufweist, und die Vorrichtung gekennzeichnet
ist durch:
einen ersten Satz von Maschinensprachenbefehlen, der in dem
Speicher gespeichert ißt und durch den Prozessor zur
Ableitung von p Redundanzblöcken von der sequentiellen Gruppe
von k Nutzblöcken ausgeführt wird, und
einen zweiten Satz von Maschinensprachenbefehlen, der in
dem Speicher gespeichert ist und durch den Prozessor zur
Erzeugung von p Paketen durch einen Prozeß ausgeführt wird,
der ein Kombinieren jedes der p Redundanzblöcke jeweils mit
einem Nutzblock in der nachfolgenden sequentiellen Gruppe
von Nutzblöcken umfaßt, wobei jedes der p Pakete einen
Nutzblock und einen der p Redundanzblöcke enthält.
10. Vorrichtung nach Anspruch 9, bei der der erste Satz
von Maschinensprachenbefehlen einen
Reed-Solomon-Blockcodierer umfaßt.
11. Vorrichtung nach Anspruch 9 oder 10, bei der die
nachfolgende sequentielle Gruppe von Nutzblöcken die k
Nutzblöcke sind, die als nächste in der Reihe nach der
sequentiellen Gruppe von k Nutzblöcken folgen.
12. Vorrichtung nach einem der Ansprüche 9 bis 11, bei der
die Nutzblöcke kooperativ ein Echtzeitmediensignal
repräsentieren, das aus einer Gruppe ausgewählt ist, die aus
Ton- und Bildsignalen besteht.
13. Vorrichtung nach einem der Ansprüche 9 bis 12, bei der
p = 1 ist.
14. Vorrichtung nach Anspruch 13, bei der der erste Satz
von Maschinensprachenbefehlen einen Redundanzblock von einer
sequentiellen Gruppe von k Nutzblöcken durch Berechnen
einer XOR-Summe aus den k Nutzblöcken ableitet.
15. Vorrichtung nach Anspruch 14, bei der die nachfolgende
sequentielle Gruppe von Nutzblöcken die p Nutzblöcke sind,
die als nächste in der Reihe nach der sequentiellen Gruppe
von k Nutzblöcken folgen.
16. Vorrichtung nach einem der Ansprüche 9 bis 12, die
weiterhin gekennzeichnet ist durch einen dritten Satz von
Maschinensprachenbefehlen, die in dem Speicher gespeichert
sind und durch den Prozessor zum Übertragen der p Pakete in
das Netzwerk ausgeführt werden, wobei die p Pakete der
Reihe nach der Sequenz der Nutzblöcke entsprechen.
17. Verfahren zum Berechnen einer Nutzlast in einem
paketvermittelten Telekommunikationsnetzwerk, in dem Leitrechner
Pakete basierend auf Informationen leiten, die in den
Paketköpfen enthalten sind, wobei die Nutzlast in eine
Sequenz von Nutzblöcken, PL[k - w], ..., PL[k - 2], PL[k - 1], PL
[k], PL[k + 1], ..., PL[k + u], unterteilt wird, wobei das
Verfahren dadurch gekennzeichnet ist, daß:
für jeden Nutzblock PL[i] in der Sequenz von Nutzblöcken
ein Vorwärtsfehlerkorrekturcode FEC[i] erzeugt wird, der
die XOR-Summe einer vorbestimmten Anzahl von
vorangegangenen Nutzblöcken umfaßt, und daß der
Vorwärtsfehlerkorrekturcode FEC [i] dem Nut zblock PL [i] angehängt wird, wobei
die vorbestimmte Anzahl größer als eins ist,
eine Sequenz von Paketen P[k], P [k + 1], ..., P [k + u] von
einer ersten Vorrichtung in dem Netzwerk zum Empfang durch
eine zweite Vorrichtung in dem Netzwerk übertragen wird,
wobei jedes Paket P[i] in der Sequenz von Paketen einen
Nutzblock PL[i] und einen Vorwärtsfehlercode FEC[i]
enthält.
18. Verfahren nach Anspruch 17, bei dem, wenn ein Paket
P[j] bei einer Übertragung verloren geht, die zweite
Vorrichtung einen Nutzblock PL[j] durch einen Prozeß
wiedererzeugt, der ein Extrahieren von Informationen aus einem oder
mehr Paketen, die dem Paket P[j] folgen, umfaßt.
19. Verfahren nach Anspruch 18, bei dem die vorbestimmte
bzw. vorgegebene Anzahl eine Länge eines Büschel- bzw.
Burstfehlers definiert, von dem die zweite Vorrichtung die
Nutzlast wiedergewinnen kann.
20. Verfahren nach Anspruch 19, bei dem die vorbestimmte
Anzahl 2 ist.
21. Verfahren nach Anspruch 19, bei dem die vorbestimmte
Anzahl 3 ist.
22. Verfahren nach einem der Ansprüche 17 bis 21, bei dem
die Nutzlast ein Echtzeit-Mediensignal repräsentiert.
23. Verfahren nach Anspruch 22, bei dem die Nutzlast ein
Sprachsignal repräsentiert.
24. Verfahren nach einem der Ansprüche 17 bis 23, das
weiterhin gekennzeichnet ist durch die Verfahrensschritt in
folgender Reihenfolge:
Auffüllen einer Vielzahl der Nutzblöcke, um eine Vielzahl
von aufgefüllten Nutzblöcken zu erzeugen, die untereinander
die gleiche Länge haben, und
Erzeugen der Vorwärtsfehlerkorrekturcodes für die
aufgefüllten Nutzblöcke.
25. Verfahren nach einem der Ansprüche 17 bis 24 das
weiterhin gekennzeichnet ist durch den Schritt des Anwendens
eines Gleitfensters entlang der Sequenz von Nutzblöcken und
durch Erzeugen und Anhängen der
Vorwärtsfehlerkorrekturcodes innerhalb des Gleitfensters.
26. Verfahren zum Wiederherstellen eines verlorenen
Paketes in einer Sequenz von Paketen, die in einem
paketvermittelten Telekommunikationsnetzwerk übertragen werden, in dem
Leitrechner Pakete basierend auf Informationen leiten, die
in den Paketköpfen enthalten sind, wobei jedes Paket in der
Sequenz eine Sequenzzahl definiert und einen Nutzblock und
einen Redundanzblock trägt, wobei das Verfahren
gekennzeichnet ist durch:
(a) Empfangen eines eingehenden Paketes von der Sequenz aus
Paketen,
(b) Einrichten eines Fensters zur Analyse beginnend mit dem
eingehenden Paket und Verlängern bzw. Weitersenden der
Sequenz, die dem eingehenden Paket folgt, für eine
vorbestimmte Anzahl von Paketen, und
(c) wenn lediglich ein Nutzblock in dem Fenster zur Analyse
nicht bis dahin empfangen wurde, Wiederherstellen des einen
Nutzblockes durch Nehmen einer XOR-Summe von einer Vielzahl
von Nutzblöcken innerhalb des Analysefensters.
27. Verfahren nach Anspruch 26, das weiterhin
gekennzeichnet ist durch:
wenn alle der Nutzblöcke in dem Analysefenster empfangen
wurden, oder wenn mehr als einer der Nutzblöcke in dem
Analysefenster nicht empfangen wurde, Bewegen des
Analysefensters zurück durch ein Paket, so daß das Analysefenster mit
einem Paket der Sequenz vor dem eingehenden Paket ist und
sich für die vorbestimmte Anzahl von Paketen des Paketes
erstreckt, das dem einen Paket folgt, und Wiederholen des
Schrittes (c) aus Anspruch 26.
28. Vorrichtung zum Übertragen einer Nutzlast in einem
paketvermittelten Telekommunikationsnetzwerk, in dem
Leitrechner Pakete basierend auf Informationen leiten, die in
den Paketköpfen enthalten sind, wobei die Nutzlast in eine
Sequenz von Nutzblöcken, PL[k - w], ..., PL[k - 2], PL[k - 1],
PL[k], PL [k + 1], ..., PL [k + u], unterteilt ist, wobei die
Vorrichtung einen Computerprozessor und einen Speicher
aufweist, und wobei die Vorrichtung gekennzeichnet ist durch:
ein erstes Segment zum Erzeugen eines
Vorwärtsfehlerkorrekturcodes FEC [i] für jeden Nutzblock PL [i] in der Sequenz
mit der XOR-Summe aus einer vorbestimmten Anzahl von
vorstehenden Nutzblöcken und zum Anhängen des
Vorwärtsfehlerkorrekturcodes FEC[i] an den Nutzblock PL[i], wobei die
vorbestimmte Anzahl größer als eins ist, und
ein zweites Segment zum Übertragen einer Sequenz von
Paketen P[k], P [k + 1], ..., P [k + u] von einer ersten Vorrichtung
in dem Netzwerk zum Empfangen durch eine zweite Vorrichtung
in dem Netzwerk, wobei jedes Paket P[i] in der Sequenz von
Paketen einen Nutzblock PL[i] und einen Vorwärtsfehlercode
FEC[i] enthält.
29. Vorrichtung nach Anspruch 28, bei der das erste
Segment einen Satz von Maschinensprachenbefehlen umfaßt, der
in dem Speicher gespeichert ist und durch den
Computerprozessor ausführbar ist.
30. Vorrichtung nach Anspruch 28 oder 29, die weiterhin
gekennzeichnet ist durch ein drittes Segment, das durch die
zweite Vorrichtung betätigt wird, zum Wiedererzeugen eines
verlorenen Nutzblockes PL[j] durch einen Prozeß, der den
Schritt des Extrahierens von Informationen aus einem oder
mehr anderen Paketen in der Sequenz der Pakete umfaßt.
31. Vorrichtung nach Anspruch 30, bei der das dritte
Segment einen Satz von Maschinensprachenbefehlen umfaßt, der
in dem Speicher gespeichert ist und durch den
Computerprozessor ausführbar ist.
32. Vorrichtung nach einem der Ansprüche 28 bis 31, bei
der die vorbestimmte Anzahl eine maximale Anzahl von
verlorenen Nutzblöcken in einer Reihe definiert, die
wiederhergestellt werden können.
33. Vorrichtung nach einem der Ansprüche 28 bis 32, bei
der die Nutzlast ein Echtzeit-Mediensignal repräsentiert.
34. Vorrichtung nach Anspruch 33, bei der die Nutzlast ein
Sprachsignal repräsentiert.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/989,616 US6145109A (en) | 1997-12-12 | 1997-12-12 | Forward error correction system for packet based real time media |
US08/989,483 US5870412A (en) | 1997-12-12 | 1997-12-12 | Forward error correction system for packet based real time media |
PCT/US1998/026421 WO1999030462A2 (en) | 1997-12-12 | 1998-12-11 | A forward error correction system for packet based real-time media |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69805849D1 DE69805849D1 (de) | 2002-07-11 |
DE69805849T2 true DE69805849T2 (de) | 2003-01-23 |
Family
ID=27130645
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69805849T Expired - Lifetime DE69805849T2 (de) | 1997-12-12 | 1998-12-11 | Ein vorwärtsfehlerkorrektionssystem für packetbasierte echtzeitmedien |
Country Status (7)
Country | Link |
---|---|
US (1) | US6487690B1 (de) |
EP (1) | EP1040611B1 (de) |
AT (1) | ATE218778T1 (de) |
AU (1) | AU3062899A (de) |
CA (1) | CA2313330C (de) |
DE (1) | DE69805849T2 (de) |
WO (1) | WO1999030462A2 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10345438A1 (de) * | 2003-09-30 | 2005-05-12 | Siemens Ag | Verfahren und Vorrichtung zum Dekodieren von mittels paketorientierten Datenübertragungsnetzen übertragenen kodierten Datenpaketen und Verfahren und Vorrichtung zum Kodieren und Dekodieren von über paketorientierte Datenübertragungsnetze zu übertragende Datenpaketen |
Families Citing this family (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6581177B1 (en) * | 1998-05-01 | 2003-06-17 | Texas Instruments Incorporated | Multi-access, collision-based communications |
US6600750B1 (en) * | 1999-03-19 | 2003-07-29 | Cisco Technology, Inc. | Email to fax processing when no secondary storage is available |
KR100677070B1 (ko) * | 1999-10-02 | 2007-02-01 | 삼성전자주식회사 | 무선 멀티미디어 통신에서의 비디오 비트스트림 데이터의 오류 제어방법 및 이를 위한 기록 매체 |
SG97934A1 (en) * | 2000-09-13 | 2003-08-20 | Mediaring Ltd | Quality of transmission across packet-based networks |
US7031308B2 (en) * | 2000-10-30 | 2006-04-18 | The Regents Of The University Of California | Tree-based ordered multicasting method |
US20050198379A1 (en) | 2001-06-13 | 2005-09-08 | Citrix Systems, Inc. | Automatically reconnecting a client across reliable and persistent communication sessions |
US20020199153A1 (en) * | 2001-06-22 | 2002-12-26 | Fall Thomas G. | Sampling method for use with bursty communication channels |
US7631242B2 (en) * | 2001-06-22 | 2009-12-08 | Broadcom Corporation | System, method and computer program product for mitigating burst noise in a communications system |
US6745364B2 (en) * | 2001-06-28 | 2004-06-01 | Microsoft Corporation | Negotiated/dynamic error correction for streamed media |
US20030023915A1 (en) * | 2001-07-30 | 2003-01-30 | Koninklijke Philips Electronics N.V. | Forward error correction system and method for packet based communication systems |
CA2417581C (en) * | 2002-01-28 | 2008-04-01 | Research In Motion Limited | Multiple-processor wireless mobile communication device |
US7661129B2 (en) | 2002-02-26 | 2010-02-09 | Citrix Systems, Inc. | Secure traversal of network components |
US7984157B2 (en) | 2002-02-26 | 2011-07-19 | Citrix Systems, Inc. | Persistent and reliable session securely traversing network components using an encapsulating protocol |
KR100458878B1 (ko) * | 2002-05-03 | 2004-12-03 | 학교법인 경희대학교 | Fec 코딩 방식에 기초한 가변길이 패킷 송수신 방법 |
DE10240669A1 (de) * | 2002-09-04 | 2004-03-18 | Wabco Gmbh & Co. Ohg | Verfahren und Einrichtung zur Übertragung von Botschaften |
US7047480B2 (en) * | 2002-11-12 | 2006-05-16 | Microsoft Corporation | Matrix multiplication in a Galois field for forward error correction |
US8705613B2 (en) * | 2003-06-26 | 2014-04-22 | Sony Corporation | Adaptive joint source channel coding |
KR20070007769A (ko) * | 2003-10-29 | 2007-01-16 | 인터랙틱 홀딩스 엘엘시 | 에러 정정을 이용하는 높은 병렬 스위칭 시스템 |
DE10353974A1 (de) * | 2003-11-19 | 2005-06-30 | Siemens Ag | Verfahren zur Übertragung von digitalen Informationspaketen in einem Datennetz |
US8582640B2 (en) * | 2003-12-16 | 2013-11-12 | Sony Corporation | Adaptive joint source channel coding |
US7346129B2 (en) * | 2004-02-25 | 2008-03-18 | Broadcom Corporation | Payload based channel estimation of a wireless channel |
US7539187B2 (en) * | 2004-07-07 | 2009-05-26 | Qvidium Technologies, Inc. | System and method for low-latency content-sensitive forward error correction |
US7751324B2 (en) * | 2004-11-19 | 2010-07-06 | Nokia Corporation | Packet stream arrangement in multimedia transmission |
US20060262860A1 (en) * | 2005-02-23 | 2006-11-23 | Chou Jim C | Macroblock adaptive frame/field coding architecture for scalable coding |
US7397400B2 (en) * | 2005-12-02 | 2008-07-08 | Viasat, Inc. | Variable length data encapsulation and encoding |
WO2008013528A1 (en) * | 2006-07-25 | 2008-01-31 | Thomson Licensing | Recovery from burst packet loss in internet protocol based wireless networks using staggercasting and cross-packet forward error correction |
CN1937631B (zh) | 2006-10-24 | 2010-12-08 | 杭州华三通信技术有限公司 | 用户数据报协议报文的处理方法及装置 |
US7706266B2 (en) | 2007-03-12 | 2010-04-27 | Citrix Systems, Inc. | Systems and methods of providing proxy-based quality of service |
CN101296055B (zh) * | 2007-04-29 | 2013-01-09 | 华为技术有限公司 | 数据包收发方法及装置 |
AU2008303800A1 (en) * | 2007-09-28 | 2009-04-02 | Nec Europe Ltd. | Method and system for transmitting data packets to multiple receivers |
US8442070B1 (en) * | 2008-02-01 | 2013-05-14 | Hobnob, Inc. | Fractional threshold encoding and aggregation |
US8201056B2 (en) * | 2008-02-19 | 2012-06-12 | Nec Laboratories America, Inc. | Anti-jamming piecewise coding method for parallel inference channels |
US20100142522A1 (en) * | 2008-12-04 | 2010-06-10 | James Gardner | Methods and apparatus for adaptive error correction in networks |
US8228800B2 (en) | 2009-02-03 | 2012-07-24 | Microsoft Corporation | Optimized transport protocol for delay-sensitive data |
WO2010114526A1 (en) | 2009-03-31 | 2010-10-07 | Hewlett-Packard Development Company, L.P. | System for recovering data from an unreadable tag |
WO2010125266A2 (fr) * | 2009-04-30 | 2010-11-04 | Alcatel Lucent | Procédé de transmission de données depuis une infrastructure d'un réseau de radiocommunication vers des équipements utilisateur, et équipements pour la mise en oeuvre du procédé |
CN101902315B (zh) * | 2009-06-01 | 2013-04-17 | 华为技术有限公司 | 基于前向纠错的重传方法、设备和通信系统 |
US9247454B2 (en) * | 2010-12-23 | 2016-01-26 | Intel Corporation | Grouping small burst transmissions for downlink machine-to-machine communications |
KR101922559B1 (ko) * | 2011-10-13 | 2018-12-05 | 삼성전자주식회사 | 통신 시스템에서 순방향 에러 정정 패킷을 송수신하는 방법 및 장치 |
US20130275837A1 (en) * | 2012-04-13 | 2013-10-17 | Real Time Logic, Inc. | Packet forward error correction |
EP2720398B1 (de) * | 2012-10-12 | 2016-09-21 | Alcatel Lucent | Mechanismus für Paket-FEC-Bandbreitenoptimierung |
US9609086B2 (en) | 2013-03-15 | 2017-03-28 | International Business Machines Corporation | Virtual machine mobility using OpenFlow |
US9104643B2 (en) | 2013-03-15 | 2015-08-11 | International Business Machines Corporation | OpenFlow controller master-slave initialization protocol |
US9444748B2 (en) | 2013-03-15 | 2016-09-13 | International Business Machines Corporation | Scalable flow and congestion control with OpenFlow |
US9407560B2 (en) | 2013-03-15 | 2016-08-02 | International Business Machines Corporation | Software defined network-based load balancing for physical and virtual networks |
US9769074B2 (en) | 2013-03-15 | 2017-09-19 | International Business Machines Corporation | Network per-flow rate limiting |
US9118984B2 (en) | 2013-03-15 | 2015-08-25 | International Business Machines Corporation | Control plane for integrated switch wavelength division multiplexing |
US9596192B2 (en) | 2013-03-15 | 2017-03-14 | International Business Machines Corporation | Reliable link layer for control links between network controllers and switches |
US9455750B2 (en) | 2014-07-28 | 2016-09-27 | Qualcomm Incorporated | Source block size selection |
GB201503828D0 (en) * | 2015-03-06 | 2015-04-22 | Microsoft Technology Licensing Llc | Redundancy scheme |
US20170207905A1 (en) * | 2016-01-14 | 2017-07-20 | Qualcomm Incorporated | Fly feedback |
US20190279058A1 (en) * | 2018-03-12 | 2019-09-12 | Microsoft Technology Licensing, Llc | Facilitating efficient reading of radio frequency identification tags |
US10361715B1 (en) * | 2018-06-04 | 2019-07-23 | Amazon Technologies, Inc. | Decompression circuit |
CN113839736A (zh) * | 2020-06-08 | 2021-12-24 | 华为技术有限公司 | 编码方法及装置 |
US11368251B1 (en) * | 2020-12-28 | 2022-06-21 | Aira Technologies, Inc. | Convergent multi-bit feedback system |
US20240333421A1 (en) * | 2023-03-27 | 2024-10-03 | Six Impossible Things Before Breakfast Limited | Systems and Methods for Improving Asset Download Time Using Forward Error Correction |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5003535A (en) | 1989-06-23 | 1991-03-26 | At&T Bell Laboratories | Packet synchronization utilizing a multi-length packet format including check sequences |
US5115436A (en) | 1990-05-04 | 1992-05-19 | Bell Communications Research | Forward error correction code system |
US5428629A (en) | 1990-11-01 | 1995-06-27 | Motorola, Inc. | Error check code recomputation method time independent of message length |
US5389922A (en) | 1993-04-13 | 1995-02-14 | Hewlett-Packard Company | Compression using small dictionaries with applications to network packets |
JP2699824B2 (ja) | 1993-09-28 | 1998-01-19 | 日本電気株式会社 | 可変レート伝送における伝送誤り訂正符号付加装置 |
JP2576776B2 (ja) * | 1993-11-10 | 1997-01-29 | 日本電気株式会社 | パケット伝送方法・パケット伝送装置 |
US5583562A (en) | 1993-12-03 | 1996-12-10 | Scientific-Atlanta, Inc. | System and method for transmitting a plurality of digital services including imaging services |
US5600663A (en) | 1994-11-16 | 1997-02-04 | Lucent Technologies Inc. | Adaptive forward error correction system |
US5617541A (en) | 1994-12-21 | 1997-04-01 | International Computer Science Institute | System for packetizing data encoded corresponding to priority levels where reconstructed data corresponds to fractionalized priority level and received fractionalized packets |
US5703887A (en) | 1994-12-23 | 1997-12-30 | General Instrument Corporation Of Delaware | Synchronization and error detection in a packetized data stream |
JP3614907B2 (ja) | 1994-12-28 | 2005-01-26 | 株式会社東芝 | データ再送制御方法及びデータ再送制御システム |
US5699369A (en) | 1995-03-29 | 1997-12-16 | Network Systems Corporation | Adaptive forward error correction system and method |
EP0823153A4 (de) | 1995-04-27 | 1999-10-20 | Stevens Inst Technology | Transportverfahren mit hoher integrität für zeitkritische multimedia-netzwerkanwendungen |
US5828788A (en) | 1995-06-29 | 1998-10-27 | Thomson Multimedia, S.A. | System for processing data in variable segments and with variable data resolution |
WO1997038549A1 (en) * | 1996-04-05 | 1997-10-16 | Universität Karlsruhe (Th) | Method and apparatus for forward error correction of transmitted digital signals in networks |
US5831690A (en) | 1996-12-06 | 1998-11-03 | Rca Thomson Licensing Corporation | Apparatus for formatting a packetized digital datastream suitable for conveying television information |
US5983388A (en) | 1997-08-25 | 1999-11-09 | Analog Devices | Forward error correction arrangement (FEC) for multipoint to single point communication systems |
US5870412A (en) * | 1997-12-12 | 1999-02-09 | 3Com Corporation | Forward error correction system for packet based real time media |
US6145109A (en) * | 1997-12-12 | 2000-11-07 | 3Com Corporation | Forward error correction system for packet based real time media |
-
1998
- 1998-12-11 AT AT98967000T patent/ATE218778T1/de not_active IP Right Cessation
- 1998-12-11 WO PCT/US1998/026421 patent/WO1999030462A2/en active IP Right Grant
- 1998-12-11 DE DE69805849T patent/DE69805849T2/de not_active Expired - Lifetime
- 1998-12-11 EP EP98967000A patent/EP1040611B1/de not_active Expired - Lifetime
- 1998-12-11 AU AU30628/99A patent/AU3062899A/en not_active Abandoned
- 1998-12-11 CA CA002313330A patent/CA2313330C/en not_active Expired - Fee Related
-
2000
- 2000-11-06 US US09/707,567 patent/US6487690B1/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10345438A1 (de) * | 2003-09-30 | 2005-05-12 | Siemens Ag | Verfahren und Vorrichtung zum Dekodieren von mittels paketorientierten Datenübertragungsnetzen übertragenen kodierten Datenpaketen und Verfahren und Vorrichtung zum Kodieren und Dekodieren von über paketorientierte Datenübertragungsnetze zu übertragende Datenpaketen |
DE10345438B4 (de) * | 2003-09-30 | 2005-09-15 | Siemens Ag | Verfahren und Vorrichtung zum Dekodieren von mittels paketorientierten Datenübertragungsnetzen übertragenen kodierten Datenpaketen und Verfahren und Vorrichtung zum Kodieren und Dekodieren von über paketorientierte Datenübertragungsnetze zu übertragende Datenpaketen |
Also Published As
Publication number | Publication date |
---|---|
US6487690B1 (en) | 2002-11-26 |
EP1040611B1 (de) | 2002-06-05 |
ATE218778T1 (de) | 2002-06-15 |
EP1040611A2 (de) | 2000-10-04 |
WO1999030462A2 (en) | 1999-06-17 |
CA2313330C (en) | 2005-02-15 |
DE69805849D1 (de) | 2002-07-11 |
AU3062899A (en) | 1999-06-28 |
WO1999030462A3 (en) | 1999-09-02 |
CA2313330A1 (en) | 1999-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69805849T2 (de) | Ein vorwärtsfehlerkorrektionssystem für packetbasierte echtzeitmedien | |
DE10393682B4 (de) | Verfahren zur Fehlerschutzcodierung und -decodierung von Nachrichten in einem Datenübertragungssystem mit Paketvermittlung | |
DE60123280T2 (de) | Verfahren für multimediakommunikation über paketkanäle | |
DE69534833T2 (de) | Schema für Fehlerkontrolle an der ATM-Adaptierungsschicht in ATM Netzwerken | |
DE60001210T2 (de) | Verfahren und Vorrichtung zur Datenkomprimierung von Netzwerkdatenpaketen | |
DE60110303T2 (de) | Verfahren und Vorrichtung zur Paketübertragung mit Paketenkopfkompression | |
DE60033184T2 (de) | Verfahren und Vorrichtung zur Datenkomprimierung von Netzwerkdatenpaketen unter Verwendung von paketweisen Hash Tabellen | |
DE60022391T2 (de) | System und verfahren zur erzielung einer robusten ip/udp/rtp-paketkopf-komprimierung in der gegenwart unzuverlässiger netze | |
DE60028399T2 (de) | Robuste header-komprimierung bei paketbasierter kommunikation | |
DE69032581T2 (de) | Übertragung von kodierten daten über nichtfunktionssichere netze | |
AT407686B (de) | Digitales mobilkommunikationssystem sowie verfahren zur datenübertragung und sende/empfangs-vorrichtung in einem mobiltelefonnetz | |
DE19630343A1 (de) | Verfahren, Vorrichtung und Paket-Übertragungssystem unter Verwendung einer Fehlerkorrektur von Datenpaketen | |
EP1258085B1 (de) | Verfahren zum anpassen der einem turbo-codierer zuzuführenden datenblöcke und entsprechende kommunikationsvorrichtung | |
EP1303966B1 (de) | Header-kompressionsverfahren für netzwerkprotokolle | |
CH694114A5 (de) | Verfahren, Datenübertragungsvorrichtung und mobile Station zum Verringern der Rahmenfehlerrate bei Datenübertragung in Form von Datenrahmen. | |
DE60002884T2 (de) | Verfahren und system zur datenempfangsquittierung | |
DE69434727T2 (de) | Verfahren und Vorrichtung zur Transformation einer Serie von Datenpaketten mit Hilfe von Datenkompression | |
DE69329098T2 (de) | Vorrichtung und verfahren zur überprüfung von nachrichten in paketform mit kopfende bestehend aus wegleitinformation und crc prüfsequenz | |
EP1175047B1 (de) | Verfahren und Anordnung zum Schutz gegen Paketverlusten bei einer paketorientierten Datenübertragung | |
DE60037046T2 (de) | Verfahren und Einrichtungen zur digitalen Datenübertragung | |
WO2006010689A1 (de) | Codier- und decodierverfahren, sowie codier- und decodiervorrichtungen mit einem zweistufigen fehlerschutzverfahren | |
DE60014367T2 (de) | Zeitschlitz aufteilung in einem tdma system | |
WO2001039522A2 (de) | Verfahren zum betreiben eines mobilfunknetzes | |
DE10226394B4 (de) | Verfahren zur Datenübertragung | |
DE60033910T2 (de) | Drahtlose Übertragung von Paketen und von Datenbursts mittels Produkt-Kodes mit iterativer Dekodierung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8328 | Change in the person/name/address of the agent |
Representative=s name: KUDLEK & GRUNERT PATENTANWAELTE PARTNERSCHAFT, 803 |
|
R082 | Change of representative |
Ref document number: 1040611 Country of ref document: EP Representative=s name: BOEHMERT & BOEHMERT, 80336 MUENCHEN, DE |