-
GEBIET DER
ERFINDUNG
-
Die
vorliegende Erfindung betrifft allgemein einen Informationstransfer
in mobilen drahtlosen Umgebungen und insbesondere ein Management
von nicht bestätigten
Datenframes bei einer ARQ mit selektiver Wiederholung.
-
HINTERGRUND
DER ERFINDUNG
-
In
drahtlosen mobilen Umgebungen resultieren eine Abschattung und ein
Mehrwege-Fading bzw. Mehrwegeschwund in einer signifikanten Leistungsfähigkeitsverschlechterung
in Bezug auf ein Zellenverlustverhältnis. Eine automatische Wiederholanforderung
(ARQ) und eine Vorwärtsfehlerkorrektur (FEC)
werden häufig
zum Verbessern einer Bitfehlerraten-(BER-)Leistungsfähigkeit verwendet. Wenn der Kommunikationskanal
von schlechter Qualität
ist, sollten einige Nachrichten (z.B. Worte, Zellen, etc.), die
durch einen Sender zu einem Empfänger
gesendet sind, die durch den Empfänger nach einer vorbestimmten
Menge an Zeit, nachdem sie übertragen sind
(d.h. außerhalb
der Zeit sind), negativ bestätigt (NACK)
werden oder unbestätigt
bleiben, in ARQ-Puffern
im Sender gespeichert werden, bis sie erfolgreich vom Sender zum
Empfänger
gesendet werden können,
oder bis eine Zeitperiode abläuft. Eine
NACK (negative Bestätigung)
oder ein Ablaufen einer Zeit kann als Anforderung vom Empfänger zum Sender
zum erneuten Senden der entsprechenden Meldung arbeiten.
-
Gemäß dem wohlbekannten
ARQ-Protokoll für
selektive Wiederholung speichert der Empfänger dann, wenn ein Empfänger erkennt,
dass er eine bestimmte Nachricht nicht richtig empfangen hat, alle richtig
empfangenen Meldungen nachfolgend zu der unrichtig empfangenen Meldung
in einem Puffer. Eine solche Anordnung ist beispielsweise aus
US 5,684,791 bekannt.
-
Für einige
Meldungen sollte die Meldung, nachdem der Sender eine Anzahl von
Malen versucht hat, eine bestimmte Meldung ohne Erfolg erneut zu
senden, oder nachdem eine Zeitperiode abläuft, vom ARQ-Puffer des Senders
verworfen werden. Wenn jedoch der Empfänger damit fortfährt, verworfene
Meldungen zu erwarten, kann das System in einen Deadlock bzw. eine
Blockierung gehen.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Gemäß verschiedenen
Ausführungsbeispielen
der Erfindung wird ein Algorithmus zur Verfügung gestellt, der komplementär zur ARQ-Technik
mit selektiver Wiederholung ist, welcher zulässt, dass veraltete oder auf
andere Weise überflüssige Pakete beim
Sender sicher verworfen werden, wenn die ARQ-Technik mit selektiver
Wiederholung verwendet wird. Somit kann ein Verstopfen von ARQ-Puffern und
eine Blockierung des Systems vermieden werden und kann ein Datentransfer
in mobilen drahtlosen Umgebungen unter Verwendung von ARQ mit selektiver
Wiederholung effizienter gemacht werden. Gemäß verschiedenen Ausführungsbeispielen
des Algorithmus wird eine Zellenverwerfungsbenachrichtungs-(CDN-)Meldung
durch den Sender zum Empfänger
gesendet, um dem Empfänger
anzuzeigen, welche Zellen oder Pakete der Sender verworfen hat, und
für welche
der Empfänger
nicht länger
erwarten muss, dass er sie empfängt.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
Andere
Aufgaben und Vorteile der Erfindung werden Fachleuten auf dem Gebiet
aus der folgenden detaillierten Beschreibung bevorzugter Ausführungsbeispiele
offensichtlich werden, wenn sie in Zusammenhang mit den beigefügten Zeichnungen
gelesen wird. Gleiche Elemente in den Zeichnungen sind durch gleiche
Bezugszeichen bezeichnet worden.
-
1 zeigt
ein Beispiel eines ARQ-Mechanismus mit selektiver Wiederholung.
-
2 zeigt
ein beispielhaftes Format einer Zellenverwerfungsbenachrichtigungsmeldung
gemäß einem
beispielhaften Ausführungsbeispiel
der Erfindung.
-
3 zeigt
ein spezifisches Beispiel einer Zellenverwerfungsbenachrichtigungsmeldung
gemäß dem in 2 gezeigten
Format.
-
4 zeigt
ein weiteres beispielhaftes Format einer Zellenverwerfungsbenachrichtigungsmeldung
gemäß einem
beispielhaften Ausführungsbeispiel
der Erfindung.
-
5 zeigt
ein spezifisches Beispiel einer Zellenverwerfungsbenachrichtigungsmeldung
gemäß dem in 4 gezeigten
Format.
-
6 zeigt
ein weiteres beispielhaftes Format einer Zellenverwerfungsbenachrichtigungsmeldung
gemäß einem
beispielhaften Ausführungsbeispiel
der Erfindung.
-
7 zeigt
einen Steuerungsablauf bei einem Empfänger gemäß einem beispielhaften Ausführungsbeispiel
der Erfindung.
-
8 zeigt
einen Steuerungsablauf bei einem Sender gemäß einem beispielhaften Ausführungsbeispiel
der Erfindung.
-
9 ist
ein Blockdiagramm eines Systems gemäß einem Ausführungsbeispiel
der Erfindung.
-
DETAILLIERTE
BESCHREIBUNG DER ERFINDUNG
-
Gemäß beispielhaften
Ausführungsbeispielen
der Erfindung sendet der Sender dann, wenn einige Meldungen oder
Zellen vom ARQ-Puffer im Sender verworfen werden sollten, eine Zellenverwerfungsbenachrichtigungsmeldung
(CDN-Meldung) zum Empfänger,
so dass der Empfänger
nicht damit fortfahren wird, zu erwarten, die verworfenen Meldungen
zu empfangen.
-
Auf
einen Empfang einer CDN-Meldung hin berechnet der Empfänger, welche
Zellen im Sender verworfen worden sind, unter Verwendung von Information,
die durch die CDN-Meldung zur Verfügung gestellt ist, und ändert seine
Erwartungen bezüglich zu
empfangender Zellen. Beispielsweise dort, wo der Empfänger eine
Liste von nicht richtig empfangenen Zellen unterhält, oder
von Zellen, die erwartet werden und noch nicht richtig empfangen
worden sind, können
Zellen, die durch die CDN-Meldung als verworfen angezeigt sind,
aus der Empfängerliste
gelöscht werden.
-
In
Situationen, in welchen eine durch den Sender zum Empfänger gesendete
CDN-Meldung verloren wird, wird der Empfänger damit fortfahren, nach
unrichtig empfangenen Zellen zu fragen und diese zu erwarten. In
dieser Situation kann der Sender die CDN-Meldung erneut zum Sender
senden. Gemäß einem
beispielhaften Ausführungsbeispiel der
Erfindung kann der Sender eine aktualisierte CDN-Meldung senden,
um Zellen zu enthalten, die er verworfen hat, nachdem er die vorherige
CDN-Nachricht gesendet hat.
-
2 zeigt
ein beispielhaftes Format einer CDN-Meldung gemäß einem beispielhaften Ausführungsbeispiel
der Erfindung. Die CDN-Meldung 200 enthält optional ein CDN-Meldungs-Identifikationsfeld
CDNM ID, das anzeigen kann, dass die Meldung eine CDN-Meldung ist,
und dass den Typ oder das Format der CDN-Meldung 200 anzeigen
kann. Das Sequenznummernfeld 204 enthält eine erste Sequenznummer
SSN1, die eine bestimmte zu verwerfende Zelle identifiziert. Das
Längenfeld 206 enthält eine
Länge L1,
die anzeigt, wie viele Zellen direkt nachfolgend zu der SSN1-Zelle
verworfen werden sollten. Die CDN-Meldung 200 kann eine
Vielzahl von solchen Feldpaaren enthalten, wie zum Beispiel die
Sequenznummernfelder 208 bis 220, die die Sequenznummern
SSN2 bis SSNn enthalten, sowie die entsprechenden Längenfelder 210 bis 222,
die die Längen
L2 bis Ln enthalten.
-
3 zeigt
ein spezifisches Beispiel einer CDN-Meldung 300, wobei
ein Sequenznummernfeld 302 eine Zelle mit einer Sequenznummer
SSN = 16 anzeigt, und ein Sequenznummernfeld 306 eine Zelle
mit einer Sequenznummer SSN = 128 anzeigt. Die entsprechenden Längenfelder 304 und 308 zeigen jeweils
Längen
von L1 = 10 und L2 = 14 an. Somit zeigt die CDN-Meldung 300 an,
dass der Sender Zellen 16–25
und 128–141
verworfen hat. Diese CDN-Format kann in Situationen verwendet werden, in
welchen eine große
Anzahl von Zellen in einer Sequenz verworfen werden, wie beispielsweise
dann, wenn eine PDU (Protokolldateneinheit) einer höheren Schicht,
wie beispielsweise ein IP-(Internetprotokoll-)Paket, in mehreren
kleinen Verbindungsschichtzellen gesendet wird und alle Verbindungsebenenzellen
entsprechend einem gegebenen IP-Paket verworfen werden.
-
Alternativ
dazu kann eine Bitmap-Darstellung der verworfenen Zellen verwendet
werden, wie beispielsweise dann, wenn die Sequenznummern von zu
verwerfenden Zellen nicht in einer Sequenz sind. 4 zeigt
ein beispielhaftes Format einer CDN-Meldung 400, die ein
Bitmap enthält.
Die Sequenznummernfelder 402, 406 und 420 enthalten Sequenznummern
SSN1, SSN2 bis SSNn, die spezifische Zellen identifizieren. Die
Längenfelder 404, 408 und 422 enthalten
Längen
L1, L2 und Ln des Bitmap-Teilabschnitts entsprechend Zellensequenzen
beginnend mit den Zellen, die in den Sequenznummernfeldern 402, 406 und 420 identifiziert
sind. Schließlich
enthält
das Bitmap-Feld 424 ein Bitmap, das anzeigt, welche Zellen
in den Zellensequenzen verworfen sind. 5 zeigt
ein spezifisches Beispiel.
-
In 5 identifiziert
das erste Sequenznummernfeld 502 die erste Zelle als tragende
Sequenznummer SSN = 16 und zeigt das entsprechende Längenfeld 504 eine
Bitmap-Teilabschnittslänge
von L1 = 3 an. Somit zeigen die 3 Bits des Bitmaps im Bitmap-Feld 424 am
weitesten links "1" für die Zelle 16 an, "0" für
die Zelle 17 und "1" für die Zelle 18,
was anzeigt, dass die Zellen 16 und 18 durch den
Sender verworfen worden sind. Auf gleiche Weise identifiziert das
Sequenznummernfeld 506 eine als nächstes beginnende Zelle als
tragende Sequenznummer SSN = 128 und ein entsprechendes Längenfeld 508 von
L2 = 5. Somit zeigen die 5 Bits des Bitmaps im Bitmap-Feld 424 am
weitesten rechts beginnend von links "1" für die Zelle 128, "1" für
die Zelle 129, "0" für die Zelle 130, "0" für
die Zelle 131 und "1" für die Zelle 132 an,
was anzeigt, dass die Zellen 128, 129 und 132 auch
verworfen worden sind.
-
Natürlich werden
Fachleute auf dem Gebiet erkennen, dass das Bitmap mit dem am wenigsten
signifikanten Bit anstelle des am meisten signifikanten Bits beginnen
kann, die Sequenznummernfelder endende Zellen anstelle von beginnenden
Zellen anzeigen können,
und so weiter.
-
Alternativ
dazu kann, wie es in 6 gezeigt ist, ein Bitmap mit
einer vorbestimmten Länge
anstelle eines Längenfelds
für jede
beginnende Zelle vorgesehen sein. Beispielsweise enthält ein Feld 604 ein Bitmap
für die
Zellensequenz mit einer Länge
entsprechend der Länge
des Bitmaps und beginnend mit der Zellen tragenden Sequenznummer
SSN1, wie es im Sequenznummernfeld 602 gezeigt ist. Obwohl
die in 6 gezeigte CDN-Meldung 600 nur mit zwei Zellen-Bitmap-Paaren gezeigt
ist, kann die CDN-Meldung 600 irgendeine geeignete Anzahl
von Zellen-Bitmap-Paaren haben.
-
Weiterhin
kann als Alternative eine CDN-Meldung explizit die Sequenznummer
für jede verworfene
Zelle enthalten. Beispielsweise kann die CDN-Meldung ein Sequenznummernfeld
für jede verworfene
Zelle enthalten.
-
7 zeigt
einen beispielhaften Steuerungsablauf bei einem Empfänger gemäß einem
beispielhaften Ausführungsbeispiel
der Erfindung. Wie es in 7 gezeigt ist, geht eine Steuerung
nach einem Beginnen in einem Schritt 702 zu einem Schritt 704, wo
der Empfänger
bestimmt, ob er eine Nachricht vom Sender empfangen hat. Wenn es
nicht so ist, dann geht die Steuerung zu einem Schritt 706,
wo der Empfänger
bestimmt, ob ein erneutes Senden von Zellen anzufordern ist, für welche
er zuvor den Sender aufgefordert hat, sie erneut zu senden, welche
er aber noch nicht empfangen hat und für welche er glaubt, dass sie
nicht verworfen worden sind. Wenn Ja, dann geht die Steuerung vom
Schritt 706 zu einem Schritt 708, wo der Empfänger eine
Anforderung für
ein erneutes Senden zum Sender gemäß dem ARQ-Protokoll für selektive
Wiederholung sendet. Vom Schritt 708 geht die Steuerung
zu einem Schritt 722, der den Steuerungsablauf zu dem Anfangsschritt 702 zurückbringt.
Wenn der Empfänger im
Schritt 706 auswählt,
keine Anforderung für
ein erneutes Senden zu dieser Zeit zu senden, dann geht die Steuerung
direkt vom Schritt 706 zum Schritt 722.
-
Wenn
der Empfänger
beim Schritt 704 bestimmt, dass er eine Nachricht vom Sender
empfangen hat, dann geht die Steuerung vom Schritt 704 zu einem
Schritt 710, wo der Empfänger bestimmt, ob die Meldung
eine CDN-Meldung ist. Wenn Ja, dann geht die Steuerung vom Schritt 710 zu
einem Schritt 712, wo der Empfänger berechnet, welche Zellen verworfen
worden sind, und zwar basierend auf der empfangenen CDN-Meldung.
Vom Schritt 712 geht die Steuerung zu einem Schritt 714,
wo der Empfänger
die durch den Sender verworfenen Zellen verwirft. Beispielsweise ändert der
Empfänger
eine Liste von Zellen, für
die er erwartet, sie zu empfangen, um die durch den Sender verworfenen
Zellen wegzulassen, wie es durch die CDN-Meldung angezeigt ist. Vom Schritt 714 geht
die Steuerung zum Schritt 722, der den Steuerungsablauf
zum Anfangsschritt 702 zurückbringt.
-
Wenn
der Empfänger
beim Schritt 710 bestimmt, dass die Nachricht vom Sender
keine CDN-Meldung ist, dann geht die Steuerung vom Schritt 710 zu
einem Schritt 716, wo der Empfänger bestimmt, ob die Meldung
neue Zellen enthält.
Wenn der Empfänger
im Schritt 716 bestimmt, dass die Meldung keine neuen Zellen
enthält,
dann geht die Steuerung vom Schritt 716 weiter zu einem
Schritt 718, wo der Empfänger geeignet antwortet. Beispielsweise
dort, wo die Meldung ein erneutes Senden enthält und richtig empfangen wird,
kann der Empfänger
durch geeignetes Bestätigen
der Meldung und durch Entfernen der richtig empfangenen, erneut
gesendeten Zellen von seiner Liste von erwarteten Zellen gemäß dem ARQ-Protokoll
mit selektiver Wiederholung antworten. Vom Schritt 718 geht
die Steuerung zum Schritt 722, wo der Steuerungsablauf zum
Anfangsschritt 702 zurückgebracht
wird.
-
Wenn
der Empfänger
in Schritt 716 bestimmt, dass die Meldung neue Zellen enthält, geht die
Steuerung dann vom Schritt 716 zu einem Schritt 720,
wo der Empfänger
bestimmt, ob irgendwelche neuen Zellen unrichtig empfangen sind
oder fehlen. Wenn beim Schritt 720 irgendwelche neuen Zellen unrichtig
empfangen werden oder fehlen, dann geht die Steuerung vom Schritt 720 weiter
zu einem Schritt 708, wo der Empfänger ein erneutes Senden der
unrichtig empfangenen oder fehlenden Zellen geeignet anfordert.
Vom Schritt 708 geht die Steuerung zum Schritt 722,
wo der Steuerungsablauf zum Anfangsschritt 702 zurückgebracht
wird. Wenn der Empfänger
beim Schritt 720 bestimmt, dass keine Zellen in der Meldung
unrichtig empfangen sind oder fehlen, dann geht die Steuerung direkt
vom Schritt 720 zum Schritt 722, wo der Steuerungsablauf
zum Anfangsschritt 702 zurückgebracht wird.
-
8 zeigt
einen beispielhaften Steuerungsablauf bei einem Sender gemäß einem
beispielhaften Ausführungsbeispiel
der Erfindung. Wie es in 8 gezeigt ist, geht die Steuerung
nach einem Beginnen in einem Schritt 802 zu einem Schritt 804,
wo der Sender bestimmt, ob irgendwelche Zellen verworfen werden
sollten. Wenn Nein, dann geht die Steuerung vom Schritt 804 zu
einem Schritt 810, wo der Sender bestimmt, ob er eine Meldung
vom Empfänger
empfangen hat. Wenn Nein, dann geht die Steuerung vom Schritt 810 weiter
zu einem Schritt 822, wo der Steuerungsablauf zum Anfangsschritt 802 zurückkehrt.
-
Wenn
der Sender beim Schritt 810 bestimmt, dass er eine Meldung
vom Empfänger
empfangen hat, dann geht die Steuerung vom Schritt 810 zu
einem Schritt 812, wo der Sender bestimmt, ob die Meldung
eine Anforderung für
ein erneutes Senden ist. Wenn Nein, geht die Steuerung vom Schritt 812 zu
einem Schritt 814, wo der Sender gemäß dem ARQ-Protokoll für selektive
Wiederholung geeignet antwortet, und dann vom Schritt 814 zu
einem Schritt 822, wo die Steuerung zum Anfangsschritt 802 zurückgebracht
wird.
-
Wenn
der Sender beim Schritt 812 bestimmt, dass die Nachricht
eine Anforderung für
ein erneutes Senden ist, dann geht die Steuerung vom Schritt 812 zu
einem Schritt 816, wo der Sender bestimmt, ob irgendeine
der Zellen, die durch den Empfänger
angefragt sind, verworfen worden sind. Wenn Nein, dann geht die
Steuerung vom Schritt 816 weiter zu einem Schritt 820,
wo der Sender irgendwelche angeforderten nicht verworfenen Zellen
erneut sendet. Vom Schritt 820 geht die Steuerung zum Schritt 822,
wo die Steuerung zum Anfangsschritt 802 zurückgebracht
wird.
-
Wenn
der Sender beim Schritt 816 bestimmt, dass eine oder mehrere
der Zellen, die durch den Empfänger
angefordert sind, verworfen worden ist, dann geht die Steuerung
weiter zu einem Schritt 818, wo der Sender eine CDN-Meldung
zum Empfänger sendet,
was anzeigt, dass die Zellen verworfen worden sind. Vom Schritt 818 geht
die Steuerung zu einem Schritt 820, wo irgendwelche angeforderten, nicht
verworfenen Zellen erneut gesendet werden.
-
Wenn
der Sender beim Schritt 804 bestimmt, dass Zellen verworfen
werden sollten, dann geht die Steuerung weiter zu einem Schritt 806,
wo der Sender die Zellen verwirft. Vom Schritt 806 geht
die Steuerung zu einem Schritt 808, wo der Sender eine CDN-Meldung
zum Empfänger
sendet, was anzeigt, dass die Zellen verworfen worden sind.
-
In
Situationen, in welchen der Sender eine CDN-Meldung sendet, die
durch den Sender verworfene Zellen anzeigt, und der Empfänger nicht
erwartete, eine oder mehrere der angezeigten Zellen zu empfangen,
kann der Empfänger
gemäß einem
beispielhaften Ausführungsbeispiel
der Erfindung die CDN-Meldung in Bezug auf die Zellen ignorieren,
für welche
der Empfänger
nicht erwartete, sie zu empfangen. Dies kann beispielsweise als
Teil der Schritte 712 und 714 der 7 durchgeführt werden,
wo die "nicht erwarteten" Zellen im Schritt 712 berechnet werden
und dann im Schritt 714 ignoriert werden. Wenn der Empfänger später dahin
gelangt, zu erwarten, eine oder mehrere der verworfenen Zellen zu empfangen,
dann kann er ein erneutes Senden von ihnen anfordern und kann der
Sender durch Senden einer CDN-Meldung zum Empfänger antworten. Alternativ
dazu kann der Empfänger
eine Liste von "nicht
erwarteten" Zellen
unterhalten, anders ausgedrückt
eine Liste von Zellen, für
welche der Empfänger
nicht erwartete, sie zu empfangen, wenn er zum ersten Mal über eine
CDN-Meldung lernte, dass der Sender sie verworfen hatte. Die Liste
kann beispielsweise als Teil des Schritts 712 aktualisiert
werden. Später
kann der Empfänger
dann, wenn er seine Liste von erwarteten Zellen durchschaut oder
aktualisiert, die "nicht
erwartete" Liste
mit der "erwarteten" Liste vergleichen
und übereinstimmende
Einträge von
den Listen entfernen. Dies kann beispielsweise in einem oder mehreren
der Schritte 712, 714 und 720 stattfinden.
-
9 ist
ein Blockdiagramm eines Systems 900 gemäß einem Ausführungsbeispiel
der Erfindung, das gemäß den oben
beschriebenen Verfahren ist, unter Bezugnahme auf beispielsweise
die 7 und 8. Das System 900 enthält einen
Sender 902, der Information zu einem Empfänger 904 über eine
drahtlose Verbindung 908 gemäß den oben unter Bezugnahme
auf beispielsweise die 7 und 8 beschriebenen
Verfahren sendet. Das System 900 enthält auch eine Liste 906 von
Sequenznummern, die Zellen darstellen, die durch den Empfänger 904 erwartet
sind, welche, wie es in 9 gezeigt ist, innerhalb des
Empfängers 904 implementiert
sein kann. Gemäß einem
Ausführungsbeispiel
der Erfindung kann die Liste 906 auch eine Auflistung von
Zellen enthalten, für
welche der Empfänger
nicht erwartet, sie zu empfangen, wenn er zum ersten Mal über eine
CDN-Meldung lernte, dass der Sender sie verworfen hatte.
-
Eine
weitere Form von Signalgabe, dass ein Verwerfen durchgeführt worden
ist, ist in
US 6,424,625 mit
dem Titel Method And Apparatus for Discarding Pakets In a Data Network Having
Automatic Repeat Request beschrieben. Ein Zellenverwerfungsverfahren
zur Verwendung mit dem PRIME-ARQ-Protokoll
ist in WO00/46948 mit dem Titel PRIME-ARQ Flow Control Including
Cell Discard beschrieben. Verschiedene Aspekte der in den vorgenannten
US- und WO-Veröffentlichungen
beschriebenen Zellenverwerfungstechniken können auf geeignete Weise mit
den weiter oben beschriebenen Zellenverwerfungstechniken kombiniert
werden.
-
Es
wird von Fachleuten auf dem Gebiet erkannt werden, dass die vorliegende
Erfindung in anderen spezifischen Formen ausgeführt werden kann, ohne von den
wesentlichen Eigenschaften davon abzuweichen, und dass die Erfindung
nicht auf die hierin beschriebenen spezifischen Ausführungsbeispiele beschränkt ist.
Die gegenwärtig
offenbarten Ausführungsbeispiele
sind daher in jeder Hinsicht als illustrativ und nicht als beschränkend anzusehen.
Der Schutzumfang der Erfindung wird durch die beigefügten Ansprüche angezeigt,
eher als durch die vorangehende Beschreibung, und alle Änderungen,
die in die Bedeutung und den Bereich gelangen, und Äquivalente
davon sollen darin umfasst sein.