-
Die Erfindung betrifft ein Verfahren zur Übertragung von Daten.
-
Bei dem erfindungsgemäßen Verfahren überträgt ein Sender Datenpakete als Broadcast oder Multicast an mehrere Benutzer. Jeder Benutzer oder Empfänger fordert eine Neuübertragung durch den Broadcast-Sender an, wenn ein Datenpaket falsch ist oder fehlt. Dies bedeutet, dass jeder Benutzer den Sender darüber informiert, welches der Pakete er nicht korrekt empfangen hat. Ein derartiges Verfahren ist als ARQ-Protokoll (Automatic Retransmission Query) bekannt, das beispielsweise in drahtlosen Kommunikationsnetzwerken als einfache Lösung gegen das Löschen von Paketen verwendet wird. Das Implementieren dieser Lösung in einem Broadcast- oder Multicast-Kommunikationssystem (beispielsweise einem Satellitensystem) führt zu einer Leistungsverringerung, insbesondere wenn unzusammenhängende (d. h. unabhängige) Paketverluste auf der Empfängerseite auftreten, Diese geringe Leistung ist auf die große Zahl von Paket-Neuübertragungen zurückzuführen, die auftritt, wenn eine große Zahl von Benutzern angeschlossen ist.
-
1 zeigt ein Szenario, in dem fünf Benutzer von einem Gateway durch einen Satelliten bedient werden, der seine eingehenden Datenpakete aussendet. Jeder Benutzer hat ein anderes Paket (dunkle Kästchen) verloren. Die Benutzer zeigen ihre jeweiligen verlorenen Pakete über einen Rückkanal an. Dieser Feedback-Kanal kann auch eine terrestrische Verbindung sein. Die Verwendung des vorgenannten ARQ-Mechanismus führt zu insgesamt fünf verschiedenen Neuübertragungen. Bei einem System mit vielen Benutzern führt dieser Ansatz zu einer sehr großen Anzahl von Neuübertragungen.
-
Zur Lösung dieses Problems wurden effiziente Alternativen zu ARQ-Protokollen für Multicast oder Broadcast auf der Grundlage der Idee der Löschungswiederherstellung in den folgenden Publikationen vorgeschlagen:
- • J. Nonnenmacher, E. W. Biersack und D. Towsley, ”Parity-based loss recovery for reliable multicast transmission”, IEEE/ACM trans. an Networking, Vol. 6, Nr. 4, S. 349–361, August 1998
- • B. Adamson, C. Bormann, M. Handley und J. Macker, ”NACK-Oriented reliable multicast protocol”, IETF (RFC 3940)
-
Ferner wurden, motiviert durch Netzwerk-Codier-Konzepte, mehrere andere Algorithmen in den folgenden Publikationen vorgeschlagen:
- • R. Ahlswede, N. Cal, S.-Y. R. Li, und r. W. Yeung, ”Network Information Flow”, IEEE Trans. Inform. Theory, vol. 4, Nr. 4, S. 1204–1216, Juli 2000
- • L. Keller, E., Drinea und C. Fragouli, ”Online Broadcasting with Network Coding”, in Proc. of the IEEE International Symposium an Network Coding (NETCOD), Hong Kong. Jan, 2008
- • J. K. Sundararajan, D. Shah und M. Medard, ”ARQ for NETWORK CODING”, in Proc. of the IEEE, International Symposium an Information Theory (ISIT), Toronto, Jul. 2008
- • R. A. Costa, D. Munaretto, J. Widmer, und J. Barros, ”Informed Network Coding for Minimum Decoding Delay”, in Proc. of the IEEE International Conference an Mobile Ad-hoc and Sensor Systems (MASS), Atlanta, Sep. 2008
-
Eine andere Gruppe von Verfahren, die auf Fountain-Codes basieren, wurde durch die folgenden Publikationen eingeführt:
- • J. Byers, M. Luby und M. Mitzenmacher, ”A digital fountain approach to releable distribution of bulk data”, IEEE 3, Select Areas Commun., vol. 20, Nr. 8, S. 1528–1540, Okt. 2002.
- • M. Shokrollahi, ”Raptor codes”, IEEE Trans. Inform. Theory, vol. 52, Nr. 6, S. 2251–2567, Juni 2996
- • 3GPP TS 26.346 V6.1.0, Technical specification group services and systems aspects; multimedia broadcast/multicast service; protocols and codecs”, Juni 2005
- • M. Luby, ”LT Codes”, in Proceedings of the 43rd Symposium of Foundations of Computer Science, Washington, DC, USA 2002.
- • G. Liva, E. Paolini und M. Chiani, ”Performance versus overhead for foundation codes over Fq”, IEEE Comm. Letters, vol. 14, Nr. 2, S. 178–180, 2010
-
Bei diesen Mechanismen wird von dem Sender eine Gruppe von n redundanten Paketen für eine Gruppe von k (< n) Quellpaketen erzeigt. Gelingt es dem Empfänger, die k Quellpakete wiederherzustellen, zeigt er diesen Decodierungserfolg dem Sender an, der das Erzeugen redundanter Pakete einstellt, sobald alle Empfänger die erfolgreiche Decodierung angezeigt haben. Der Fountain-Decodierungsansatz wird sehr effizient, wenn er mit Maximum-Likelihood-Decodern (ML-Decodern) zur Wiederherstellung von Quellblöcken verwendet wird. Verwendet man jedoch Fountain Codes auf der Basis von dünn besetzten Matrizen, wird die ML-Decodierung durch moderat komplexe Algorithmen erreicht, wie in den folgenden Publikationen beschrieben:
- • E. Paolini, G. Liva, M. Varrella, B. Matuz, und M. Chiani, ”Low-Complexitiy LDPC Codes with Near-Optimum Performance over the BEC”, in Proc. 4th ASMS Conference, Bologna, Aug 2008
- • D. Burshtein und G. Miller, ”An efficient maximum likelihood decoding of LDPC codes over the binary erasure channel”, IEEE Trans. Inform. Theory vol. 50, nr. 11, Nov 2004
- • B. Matuz, G. Liva, E. Paolini und M. Chiani, ”Pivoting algorithms for maximum likelihood decoding of LDPC codes over erasure channels”, 2009 IEEE Global Communications Conf. (Globecom), Hawaii (USA), Nov 2009
-
Derartige Algorithmen sind für Terminals mit begrenzter Rechenleistung ungeeignet.
-
Die Druckschrift „Xiao et al.: A Wireless Broadcasting Retransmission Approach Based an Network Coding. In: 4th IEEE International Conference an Circuits and Systems for Communications (ICCSC 2008), Proceedings, 26.–28. Mai 2008, S. 782–786” beschreibt ein Broadcast-Verfahren zum erneuten drahtlosen Übertragen von Daten basierend auf Network Coding. Hierbei werden verlorengegangen Pakete durch Network Coding Techniken im Rahmen einer erneuten Übertragung kombiniert.
-
Es ist die Aufgabe der vorliegenden Erfindung, ein Verfahren zum Übertragen von Daten in einem Broadcast- oder Multicast-Szenario bereitzustellen, durch welches die Anzahl der neu zu übertragenden Datenpakete verringert wird.
-
Diese Aufgabe wird erfindungsgemäß mit den Merkmalen des Anspruchs 1 gelöst. Bei dem erfindungsgemäßen Verfahren überträgt ein Sender Datenpakete in einem Multicast oder Broadcast an mehrere Benutzer. Der Sender kann beispielsweise ein Satelliten-Gateway sein, das an mehrere Benutzer sendet, bei denen es sich um Satellitenempfänger handeln kann.
-
Jeder Benutzer informiert den Sender darüber, welches der Pakete er nicht korrekt empfangen hat. Somit fordert jeder Empfänger eine Neuübertragung durch den Sender an, wenn ein Datenpaket falsch ist oder fehlt.
-
Der Sender überträgt die von dem Benutzer nicht korrekt empfangenen Datenpakete erneut, entweder allein oder als eine lineare Kombination mit anderen Paketen, insbesondere mit solchen Paketen, von diesem bestimmten Benutzer korrekt empfangen wurden. Beispielsweise kann ein von diesem Benutzer korrekt empfangenes Paket einem anderen Benutzer fehlen, welcher wiederum das Paket empfangen hat, das dem ersten Benutzer fehlt. Durch diese lineare Kombination ist es daher möglich, nur ein einziges Paket anstatt zweier Pakete zu übertragen, und auf diese Weise die Bandbreitenauslastung auf die Hälfte zu verringern. Um Datenpakete zu kombinieren, können einfache Techniken verwendet werden, wie zum Beispiel eine bitweise Summe ⊕ der entsprechenden Pakete. Hierbei handelt es sich lediglich um ein Beispiel, bei welchem nur zwei Pakete auf einmal codiert werden. Je nach der Systemkonfiguration können jedoch drei oder mehr Pakete codiert werden, um so die Bandbreitenausiastung weiter zu verringern.
-
Ein einfaches Beispiel für eine lineare Kombination bei der Netzwerkcodierung wird im Folgenden dargelegt. Es sei angenommen, der Host I hat ein Paket {a} und der Host J ein Paket {b} und sie beabsichtigen, diese Informationen über einen mit K bezeichneten Netzwerkverbindungsknoten auszutauschen. In einem normalen Netzwerk sendet der Host I {a} an K, welcher dieses an J weiterleitet, der wiederum {b} an K zur Weiterleitung an den Host I sendet. Bei Verwendung dieses Verfahrens sind vier Übertragungen erforderlich, nämlich: I an K und K an J zum Senden von {a}, plus J an K und K an I zum Senden von {b}.
-
Unter Anwendung der Netzwerkcodierungsprinzipien überträgt andererseits der Hast I {a} an K, welcher ferner {b} vom Hast J empfängt. Der Knoten K führt die XOR-Operation '⊕' (bei welcher es sich um eine einfache lineare Kombination der Bits in den Paketen handelt) für die beiden empfangenen Pakete durch und sendet das Ergebnis {a ⊕ b} an beide Hosts I und J. Da der Host I {a} aufweist und {a ⊕ b} empfangen hat, kann der Host I {b} durch Anwenden von (a ⊕ b ⊕ a) extrahieren, das heißt durch Subtrahieren von {a}. Gleiches kann mittels (a ⊕ b ⊕ b) auch bei J Anwendung finden, um {a} wiederherzustellen. Wie deutlich ersichtlich ist, wurden lediglich drei Übertragungen verwendet, nämlich von I an K, von J an K und von K an (I&J); hierdurch wird die Bandbreitenauslastung auf der Downlink-Seite, insbesondere bei K an (I&J), weiter reduziert.
-
Erfindungsgemäß werden für eine Neuübertragung kombinierte Datenpakete durch die folgenden Verfahrensschritte bestimmt:
- Der Sender wählt eines der Datenpakete, die von genau einer ersten Anzahl von Benutzern korrekt empfangen wurden, Diese Anzahl liegt zwischen 1 und N, wobei N die Gesamtzahl der Benutzer ist. Eine lineare Kombination dieses Datenpakets mit einem anderen Datenpaket, das von genau einer zweiten Anzahl von Benutzern korrekt empfangen wurde, wird erzeugt. Die zweite Anzahl von Benutzern liegt ebenfalls zwischen 1 und N.
-
Wenn beispielsweise die Gesamtzahl der Benutzer fünf beträgt, wählt der Sender eines der Datenpakete, die beispielsweise von genau drei Benutzern korrekt empfangen wurden, und erzeugt eine lineare Kombination dieses Datenpakets mit einem anderen Datenpaket, das von genau den beiden anderen Benutzern empfangen wurde (3 + 2 = 5).
-
Dies gilt, wenn das System derart konfiguriert ist, dass es ein Maximum von zwei Paketen auf einmal codiert. Wenn die Konfiguration das Codieren eines Maximums von drei Paketen vorsieht, werden die Benutzer in drei Untergruppen eingeteilt.
-
Dies kann erfolgen, indem ein weiteres anderes Datenpaket gewählt wird, das von genau einer weiteren Anzahl von 1 bis N verschiedenen Benutzern korrekt empfangen wurde, wenn die Summe der ersten und der zweiten Anzahl < N ist. Dieser Verfahrensschritt wird wiederholt, bis die Summe der ersten und der zweiten und aller weiteren Anzahlen von verschiedenen Benutzern, auf die in diesem Schritt Bezug genommen wird, N ist, so dass alle N Benutzer repräsentiert sind. Anschließend wird eine lineare Kombination sämtlicher gewählter Datenpakete erzeugt, welche die Gesamtzahl N der Benutzer repräsentieren.
-
Die für eine Neuübertragung kombinierten Datenpakete werden durch die folgenden Verfahrensschritte bestimmt:
- a) Zunächst werden die Schnittmengen der Datenpakete erzeugt, welche von jeder möglichen Kombination mehrerer Benutzer korrekt empfangen wurden. Die in Betracht gezogenen Kombinationen sind Kombinationen von mindestens zwei Benutzern bis zu Kombinationen von N – 1 Benutzern. Somit enthält jede Schnittmenge die von einer bestimmten Gruppe von Benutzern korrekt empfangenen Pakete, wobei die Obergrenze für die Anzahl von Benutzern in dieser Gruppe N – (K – 1) ist, wobei K die maximale Anzahl von Paketen ist, die linear kombiniert werden.
- b) Die Pakete, die in sämtlichen Schnittmengen vorhanden sind, oder einfach in der aus allen Benutzern zusammen gebildeten Schnittmenge, werden aus der Übertragung ausgeschlossen, da hierdurch klargestellt ist, dass sämtliche Benutzer diese Pakete erfolgreich empfangen haben, d. h. sie werden als gesperrt markiert, d. h. sie stehen für ein Codieren nicht mehr zur Verfügung.
- c) Jedes Datenpaket, das nicht im Verfahrensschritt a als von mindestens zwei Benutzern korrekt empfangen bestimmt wurde, wird unmittelbar neu gesendet.
- d) Dieser Verfahrensschritt umfasst das Auswählen eines der Datenpakete aus einer Schnittmenge von Datenpaketen, die von genau N – x Benutzern korrekt empfangen wurden, und das Erzeugen einer linearen Kombination dieses Datenpakets mit einem anderen Datenpaket, das von genau x Benutzer oder Benutzern korrekt empfangen wurde, wobei x eine Zahl zwischen 1 und N/2, wenn N eine gerade Zahl ist, oder zwischen 1 und dem Floor (N/2), wenn N eine ungerade Zahl ist. Dies gilt, wenn das System zum Codieren eines Maximums von zwei Paketen konfiguriert ist. Die Pakete werden aus den Schnittmengen ausgewählt, die einander nicht überlappen und sämtliche Benutzer gleichzeitig repräsentieren. Wenn ein Maximum von mehr als zwei Paketen zusammen codiert werden kann, sieht der Verfahrensschritt d) das Aufteilen der Gesamtzahl der Benutzer N in mehrere Mengen vor, wobei jede Menge K Gruppen aufweist, wobei eine Gruppe aus mindestens einem Benutzer besteht, und die Obergrenze für die Anzahl von Benutzern in einer Gruppe N – (K – 1) ist. Auf diese Weise müssen alle Benutzer in den K Gruppen repräsentiert sein.
- e) Der Verfahrensschritt d wird wiederholt, bis alle Datenpakete aus der Schnittmenge der Datenpakete, die von genau N – x Benutzern korrekt empfangen wurden, linear mit einem anderen Datenpaket kombiniert wurden, wobei, wenn kein anderes Datenpaket, das von genau N – x Benutzern korrekt empfangen wurde, existiert, das Verfahren zur nächsten Anzahl von x übergeht. Ein zu einer ersten Gruppe gehöriges erstes Datenpaket aus der Schnittmenge, das nicht markiert ist, wird gewählt.
- f) Ein weiteres Datenpaket aus der Schnittmenge, das zu einer weiteren Gruppe gehört, wird ausgewählt, wobei das weitere Datenpaket von dem ersten Datenpaket verschieden ist. Dieser Verfahrensschritt f) wird wiederholt, bis K verschiedene Datenpakete gewählt sind. Wenn keine weiteren Datenpakete in Schnittmengen existieren, die zu weiteren Gruppen gehören, geht das Verfahren zum Verfahrensschritt h) über, ansonsten zum Verfahrensschritt g).
- g) Eine lineare Kombination sämtlicher K gewählter Datenpakete wird erzeugt.
- h) Die Verfahrensschritte e) bis g) werden wiederholt, bis keine weitere lineare Kombination in anderen Mengen für den gewählten Wert von K erzeugt werden kann.
- i) Der Wert K wird um 1 dekrementiert.
- j) Die Verfahrensschritte d) bis g) werden mit dem dekrementierten Wert von K wiederholt.
-
De ein Benutzer den Sender, beispielsweise das Gateway, um die Neuübersendung einiger bestimmter verlorener Pakete bittet, kann der Sender für jeden Benutzer eine Menge erstellen, welche die Pakete enthält, die der Benutzer bereits erfolgreich erhalten hat.
-
Basierend auf diesen Informationen erzeugt der Sender die zuvor genannten Schnittmengen der erfolgreich empfangenen Pakete zwischen den verbundenen Benutzern. In diesen Schnittmengen können, je nach der Konfiguration des Systems, nur Datenpakete codiert werden, die aus nicht überlappenden Mengen stammen und sämtliche Benutzer enthalten.
-
Das erfindungsgemäße Verfahren ermöglicht es dem Sender somit, vollständige Kenntnis von dem System zu erhalten (d. h. über welche Daten der Benutzer verfügt und welche ihm noch fehlen), wodurch der Sender an Intelligenz gewinnt. Basierend auf dieser Kenntnis werden Pakete kombiniert und gesendet. Des Weiteren wird den Paketen Priorität gegeben, die von vielen Benutzern benötigt werden. Das erfindungsgemäße Verfahren erreicht unter Verwendung einfacher Codierungstechniken eine geringere Anzahl von Paket-Neuübertragungen als einfache ARQ-Protokolle. Darüber hinaus ist bei der Neuübertragung eine geringere Bandbreitenauslastung auf dem Downlink (d. h. vom Sender zu den Benutzern) zu beobachten. Es wird angenommen, dass ein spezieller Header für die codierten Pakete vorgesehen ist, um die Indizes der kombinierten Pakete anzugeben, da Pakete gemeinhin anhand ihrer Indizes identifiziert werden.
-
Vorzugsweise wird jedes einzelne Datenpaket gemäß dem zuvor beschriebenen Verfahrensschritt b allein neu übertragen, nämlich nicht als lineare Kombination mit einem anderen Datenpaket. Es ist ferner bevorzugt, der Übertragung eines derartigen Datenpakets eine höhere Priorität beizumessen als der Übertragung anderer Datenpakete. Daher hat ein Datenpaket, das vielen Benutzern fehlt, eine höhere Übertragungspriorität.
-
Vorzugsweise wird jedes Datenpaket, das für eine Neuübertragung entweder allein oder als lineare Kombination mit einem anderen Datenpaket bestimmt wird, als ”gesperrt” markiert, was bedeutet, dass es nicht erneut für eine Neuübertragung verwendet werden kann. Ferner sollten die Datenpakete der von allen Benutzern gebildeten Schnittmenge als gesperrt markiert werden.
-
Ferner ist es bevorzugt, dass die Schnittmengen, die als von einer geringeren Anzahl von Benutzern korrekt empfangen festgestellt wurden, dazu zu verwenden, Schnittmengen zu bestimmen, die von einer größeren Anzahl von Benutzern korrekt empfangen wurden, welche die geringere Anzahl von Benutzern einschließen. Das bedeutet beispielsweise, dass, wenn die Schnittmenge für die Benutzer A, B, C bestimmt werden soll, die bereits bestimmte Schnittmenge für die Benutzer A und B für diesen Zweck verwendet werden kann, da ABC = A B ∩ C. Der Ausdruck AB wird hier lediglich aus Gründen der Vereinfachung und Verdeutlichung als A ∩ B verwendet.
-
Vorzugsweise ist die Gesamtzahl sämtlicher möglicher Kombinationen von Benutzern, die das gleiche Datenpaket oder die gleichen Datenpakete möglicherweise korrekt empfangen haben, gemäß dem vorgenannten Verfahrensschritt a:
wobei
NCi = N! / i!(N – i)!
-
Das erfindungsgemäße Verfahren umfasst vorzugsweise die folgenden Verfahrensschritte:
- • Bestimmen der von jedem einzelnen Benutzer korrekt empfangenen Datenpakete
- • Bestimmen der von jeder möglichen Kombination von zwei Benutzern korrekt empfangenen Datenpakete
- • Bestimmen der von jeder möglichen Kombination von drei Benutzern korrekt empfangenen Datenpakete
- • Bestimmen der von jeder möglichen Kombination von vier Benutzern korrekt empfangenen Datenpakete
...
- • Bestimmen der von jeder möglichen Kombination von N – 2 Benutzern korrekt empfangenen Datenpakete
- • Bestimmen der von jeder möglichen Kombination von N – 1 Benutzern korrekt empfangenen Datenpakete
-
Vorzugsweise ist K stets >= 2.
-
Im Folgenden werden bevorzugte Ausführungsbeispiele der Erfindung in Zusammenhang mit der 2 beschrieben.
-
1 und 2 zeigen Broadcast-Szenarien, in welchen jeder Benutzer eines oder mehr Datenpakete verloren hat (dunkle Kästchen).
-
1 wurde bereits in der Einleitung der vorliegenden Anmeldung in Zusammenhang mit dem Stand der Technik beschrieben.
-
Die Konfiguration in 2 (in welcher ein Beispiel mit einer Systemkonfiguration zum Codieren eines Maximums von zwei Paketen auf einmal gezeigt ist) stellt ein Multicast- oder Broadcast-Satellitensystem dar. Die Paket-Löschrate ist höher als in 1. Infolgedessen fehlt jedem Benutzer mehr als ein Paket. Auf der Grundlage der Anforderung seitens der Benutzer an das Gateway, die verlorenen Pakete (dunkle Kästchen in 2) neu zu übertragen, kann das Gateway die von jedem einzelnen Benutzer erfolgreich empfangenen Datenpakete bestimmen. Das Gateway erstellt die Mengen dieser Pakete beispielsweise folgendermaßen: UA = {P3, P5}, UB = {P1, P4, P5}, UC = {P1, P3, P5, P6}, UD = {P1, P2, P4, P5, P6} und UE = {P1, P3, P4}
-
Die in diesen Mengen nicht erwähnten Pakete gelten als verloren, da es erforderlich ist, dass jeder Benutzer über sämtliche Pakete verfügt. Ferner wird angenommen, dass das Gateway über sämtliche Pakete verfügt.
-
Da fünf Benutzer angeschlossen sind, ist M gleich 25, wie aus
berechnet.
-
Somit gilt: M = 5C2 + 5C3 + 5C4 = 120/2·6 + 120/6·2 + 120/24·1 = 10 + 10 +5
-
Die verschiedenen Kombinationen der Schnittmengen der Benutzer sind:
- a) AB, AC, AD, AE, BC, BD, BE, CD, CE, DE
- b) ABC, ABD, ABE, ACD, ACE, ADE, BCD, BCE, BDE, CDE
- c) ABCD, ABCE, ABDE, ACDE, BCDE
wobei XY die Menge der von dem Benutzer X empfangenen Pakete geschnitten mit der Menge der von dem Benutzer Y empfangenen Pakete angibt (d. h. SX ∩ SY).
-
Der erste Verfahrensschritt besteht in der Bestimmung der von jedem Benutzer erfolgreich empfangenen Pakete: A = {P3, P5} B = {P1, P4, P6} C = {P1, P3, P5, P6} D = {P1, P2, P4, P5, P6} E = {P1, P3, P4}
-
Die Schnittmengen der zweiten, dritten und vierten Ebene werden nun auf einfache Weise durch Bildung von Schnittmengen der seitens der jeweiligen Benutzer vorhandenen Informationen gebildet, das heißt:
AB = Φ | ABC = Φ | ABCD = Φ |
AC = {P3, P5} | ABD = Φ | ABCE = Φ |
AD = {P5} | ABE = Φ | ABDE = Φ |
AE = {P3} | ACD = {P5} | ACDE = Φ |
BC = {P1, P4, P6} | ACE = {P3} | BCDE = {P1} |
BD = {P1, P4, P6} | ADE = Φ | |
BE = {P1, P4} | BCD = {P1, P6} | |
CD = {P1, P5, P6} | BCE = {P1} | |
CE = {P1, P3} | BDE = {P1, P4} | |
DE = {P1, P4} | CDE = {P1} | |
-
Hierbei steht Φ für eine Leermenge. Die Berücksichtigung von Leermengen vereinfacht den Algorithmus, da Leermengen keine Schnittmengen mit anderen Mengen bilden können und somit nicht werter beachtet werden müssen. Es ist ersichtlich, dass sämtliche der oben gezeigten Ergebnisse Untermengen der in dem Gateway vorhandenen Datenpakete sind.
-
Um die Anzahl von Neuübertragungen zu verringern, werden nicht überlappende Mengen, welche die Gesamtzahl sämtlicher Benutzer zusammen repräsentieren, verwendet, um lineare Kombinationen der darin vorhandenen Datenpakete zu erstellen. Beispielsweise ist die Verwendung von ABCD und ABD nicht korrekt, da diese sich überlappen (da ABD in beiden Schnittmengen vorhanden ist). Das Gleiche gilt beispielsweise für die Schnittmengen ABCD und C. Jedoch kann die Schnittmenge ABCD mit E kombiniert werden, da diese nicht überlappen und die Gesamtzahl von Benutzern repräsentieren (nämlich ABCDE). Ferner könnte der Algorithmus ACE und BD verwenden.
-
Anders ausgedrückt: da fünf Benutzer existieren, ist der Algorithmus bestrebt, Pakete nur aus nicht überlappenden Mengen zu kombinieren und sämtliche Benutzer zu berücksichtigen, d. h. aus den Ebenen 4 und 1 bzw. aus den Ebenen 2 und 3. Vorliegend werden aufgrund der Systemkonfiguration nur zwei Mengen auf einmal in Betracht gezogen.
-
Zunächst wird, da {P2} in keiner Schnittmenge auftritt, dieses als dringend markiert, während andere Pakete als trivial markiert werden. Hierdurch erhält {P2} eine höhere Priorität für die Übertragung als erstes Paket, da es den meisten der Benutzer fehlt. Ferner ist auf der vierten Ebene nur BCDE nicht leer. Daher wird deren Element {P1} mit einem Element kombiniert, beispielsweise dem ersten aus A (d. h. {P3}), so dass sämtliche Benutzer berücksichtigt werden. Somit kann {P1 ⊕ P3} gesendet werden und die beiden Pakete werden als gesperrt markiert. Das Verfahren fährt mit den Mengen der zweiten und der dritten Ebene fort, wobei es ACD und BE verwendet, so dass {P5 ⊕ P4} kombiniert und als gesperrt markiert werden kann. Mit {P1} kann keine weitere Operation ausgeführt werden, da es gesperrt ist.
-
Mit ACE und BD kann nicht werter verfahren werden, da {P3} gesperrt ist. Dies ist darin begründet, dass ein Paket jeder Schnittmenge in jeder linearen Kombination vorhanden sein muss.
-
Mit BCD und AE kann nicht weiter verfahren werden, da {P3} bereits gesendet wurde. Dies gilt auch für alle anderen Mengen. Ferner wird {P6} unverändert übertragen, da alle anderen Pakete gesperrt sind.
-
Schließlich sendet das Gateway als Ergebnis {P2, P1 ⊕ P3, P4 ⊕ P5, P6. Somit sind nur vier Neuübertragungen anstatt sechs erforderlich (nämlich sämtliche Pakete am Gateway, wie im Falle von ARQ-Protokollen). Die Benutzer können einfach ein beliebiges Paket aus diesen Neuübertragungen decodieren, verwerfen oder annehmen. Beispielsweise kann der Benutzer A, der die größte Zahl von Paketen verloren hat, nämlich vier, die Pakete {P2, P6} unverändert annehmen und {P1} und {P4} aus {P1 ⊕ P3} bzw. {P4 ⊕ P5} decodieren. Das gleiche Verfahren kann von den anderen Benutzern angewandt werden.
-
Das Kombinieren von mehr als zwei Datenpaketen zur Erzeugung einer linearen Kombination kann im Vergleich mit einer linearen Kombination aus nur zwei Datenpaketen Vorteile haben. Durch das Kombinieren von mehr als zwei Datenpaketen kann die Zahl der erforderlichen Neuübertragungen verringert werden. Das folgende Beispiel soll dies illustrieren.
-
Es sei angenommen, dass eine Gesamtzahl von zehn Datenpaketen vorliegt:
P1, P2, P3, P4, P5, P6, P7, P8, P9, P10
-
Ferner beträgt die Gesamtzahl der Benutzer sechs, was bedeutet, dass N = 6. Die Benutzer haben die folgenden Datenpakete korrekt empfangen: U1 = {P1, P2, P6} U2 = {P1, P3, P4} U3 = {P1, P3, P10} U4 = {P2, P3, P6, P7, P8} U5 = {P1, P2, P9, P10} U6 = {P2, P3, P5}
-
Die Schnittmengen, nämlich die von mehr als einem Benutzer korrekt empfangenen Datenpakete, sind:
U1 ∩ U2: P1,
U1 ∩ U3: P1,
U1 ∩ U4: P2, P6,
U1 ∩ U5: P1, P2,
U1 ∩ U6: P2
U2 ∩ U3: P1, P3,
U2 ∩ U4: P1, P3,
U2 ∩ U4: P3,
U2 ∩ U5: P1,
U2 ∩ U6: P3,
U3 ∩ U4: P3,
U3 ∩ U5: P1, P10,
U3 ∩ U6: P3,
U4 ∩ U5: P2,
U4 ∩ U6: P2, P3,
U5 ∩ U6: P2,
U4 ∩ U5 ∩ U6: P2,
U3 ∩ U5 ∩ U6: Φ,
U3 ∩ U4 ∩ U6: P3,
U3 ∩ U4 ∩ U5: Φ,
U2 ∩ U5 ∩ U6: Φ,
U2 ∩ U4 ∩ U6: P3,
U2 ∩ U4 ∩ U5: Φ,
U2 ∩ U3 ∩ U6: P3,
U2 ∩ U3 ∩ U5: P1,
U2 ∩ U3 ∩ U4: P3,
U1 ∩ U5 ∩ U6: P2,
U1 ∩ U4 ∩ U6: P2,
U1 ∩ U4 ∩ U5: P2,
U1 ∩ U3 ∩ U6: Φ,
U1 ∩ U3 ∩ U5: P1,
U1 ∩ U3 ∩ U4: Φ,
U1 ∩ U2 ∩ U6: Φ,
U1 ∩ U2 ∩ U5: P1,
U1 ∩ U2 ∩ U4: Φ,
U1 ∩ U2 ∩ U3: P1,
U3 ∩ U4 ∩ U5 ∩ U6: Φ,
U2 ∩ U4 ∩ U6 ∩ U6: Φ,
U2 ∩ U3 ∩ U5 ∩ U6: Φ,
U2 ∩ U3 ∩ U4 ∩ U6: P3,
U2 ∩ U3 ∩ U4 ∩ U5: Φ,
U1 ∩ U4 ∩ U5 ∩ U6: P2,
U1 ∩ U3 ∩ U5 ∩ U6: Φ,
U1 ∩ U3 ∩ U4 ∩ U6: Φ,
U1 ∩ U3 ∩ U4 ∩ U5: Φ,
U1 ∩ U2 ∩ U5 ∩ U6: Φ,
U1 ∩ U2 ∩ U4 ∩ U6: Φ,
U1 ∩ U2 ∩ U4 ∩ U5: Φ,
U1 ∩ U2 ∩ U3 ∩ U6: Φ,
U1 ∩ U2 ∩ U3 ∩ U5: P1,
U1 ∩ U2 ∩ U3 ∩ U4: Φ,
U1 ∩ U2 ∩ U3 ∩ U4 ∩ U5: 1,
U1 ∩ U2 ∩ U3 ∩ U4 ∩ U6: Φ,
U1 ∩ U2 ∩ U3 ∩ U5 ∩ U6: Φ,
U1 ∩ U2 ∩ U4 ∩ U5 ∩ U6: Φ,
U1 ∩ U3 ∩ U4 ∩ U5 ∩ U6: 1,
U2 ∩ U3 ∩ U4 ∩ U5 ∩ U6: Φ
-
Da {P4, P5, P7, P8, P9} in den zuvor genannten Schnittmengen nicht auftritt, werden sie als dringende Pakete gesendet, nämlich als fünf separate Übertragungen.
-
Da die Schnittmengen von fünf Benutzern zusammen sämtlich leer{Φ} sind, kann keine lineare Kombination mit den einzelnen Benutzermengen, d. h. U1, U2, ... U6, erzeugt werden. Daher werden die Schnittmengen der vier und der zwei Benutzer untersucht. Erneut können nur Pakete aus Schnittmengen kombiniert werden, die sämtliche Benutzer repräsentieren. Aus den Schnittmengen U1 ∩ U5 und U2 ∩ U3 ∩ U4 ∩ U6 werden die Datenpakete P1 ⊕ P3 markiert und gesendet. In U1 ∩ U4 ∩ U5 ∩ U6 ist P2 enthalten, jedoch ist U2 ∩ U3 leer, so dass hier keine Kombination erzeugt werden kann. Schließlich werden die Datenpakete P6, P10 und P2 separat ohne lineare Kombinationen gesendet, so dass eine Gesamtzahl von neun Übertragungen gegeben ist, wenn ein Maximum von zwei Datenpaketen kombiniert werden kann (K = 2).
-
Im Folgenden wird das gleiche Beispiel für eine maximale Anzahl von drei kombinierbaren Datenpaketen (K = 3) betrachtet. Erneut erscheinen {P4, P5, P7, P8, P9} nicht in den Schnittmengen, so dass sie als dringende Pakete gesendet werden. Da K = 3, versucht das erfindungsgemäße Verfahren, zuerst lineare Kombinationen von drei Paketen zu finden, bevor es nach linearen Kombinationen von zwei Paketen sucht. Erneut können lineare Kombinationen nur aus Schnittmengen erzeugt werden, in denen sämtliche Benutzer repräsentiert sind. Jedoch werden hierbei nicht nur zwei, sondern drei Gruppen berücksichtigt. Bei dem vorgenannten Beispiel könnten die drei Gruppen beispielsweise U1 und U2 ∩ U3 und U4 ∩ U5 ∩ U6 sein. Aus diesen Gruppen können die Datenpakete P1 ⊕ P2 ⊕ P3 entnommen und nach Erzeugen einer linearen Kombination gesendet werden.
-
Da keine anderen Datenpakete kombiniert werden können, selbst wenn der Wert von K verringert wird (K = 2), müssen die Datenpakete P6 und P10 separat gesendet werden. Somit beträgt die Gesamtzahl an Übertragungen acht, was bedeutet, dass eine Übertragung weniger erforderlich ist.
-
Die von den Benutzern empfangenen neu übertragenen Pakete werden auf die folgende Weise decodiert: betrachtet man beispielsweise U1, so kann dieser, wenn er P1 ⊕ P2 ⊕ P3 empfängt, die Datenpakete P1 und P2 decodieren (über die er bereits verfügt), um P3 unter Verwendung der üblichen Prinzipien, nämlich: P1 ⊕ P2 ⊕ P3 ⊕ P1 ⊕ P2 = P3, zu decodieren.
-
Es wurde somit gezeigt, dass die Gesamtzahl der erforderlichen Neuübertragungen verringert werden kann, indem lineare Kombinationen von mehr als zwei Datenpaketen ermöglicht werden.
-
Das erfindungsgemäße Verfahren legt besonderes Augenmerk auf die Charakteristik eines Broadcast- oder Multicast-Systems, beispielsweise eines Satellitensystems, bei welchem die Verwendung von aus dem Stand der Technik bekannten ARQ-Protokollen zu einer Leistungsverringerung führt.