-
Gebiet der
Erfindung
-
Die vorliegende Erfindung bezieht
sich im Allgemeinen auf Kommunikationssysteme und im Besonderen
auf die Übermittlung
von Datenpaketen zwischen einem Kommunikationsgerät und einem Daten-Controller
in einem Kommunikationssystem.
-
Hintergrund
der Erfindung
-
Es gibt viele Protokolle, um Datenpakete
zuverlässig
von einem Kommunikationsgerät
zu einem anderen über
unsichere Kommunikationskanäle
zu übermitteln.
In einigen dieser Protokolle (wie beispielsweise in ARQ-Protokollen
(ARQ = "automatic repeat
request"/automatisch
wiederholende Anfrage)), überträgt ein Sendegerät Datenpakete
an ein Zielgerät
und das Zielgerät überträgt nach
dem Erhalt der Datenpakete entsprechende Bestätigungsnachrichten (ACK) zu rück an das
Sendegerät.
Typischerweise wird das Sendegerät
beim Senden eines Datenpakets oder einer Gruppe von Datenpaketen
einen Timer setzen. Sofern keine ACK für ein bestimmtes Datenpaket
oder eine Gruppe von Datenpaketen vor dem Ablauf des entsprechenden
Timers empfangen wird, wird das Datenpaket oder die Gruppe von Datenpaketen
erneut übertragen.
Auf diese Weise wird ein zuverlässiger
Datentransfer erreicht.
-
In Timer-basierten Protokollen kann
der Ablaufzeitraum die Eigenschaften des Datentransfers wie den
Datendurchsatz oder die Datenverzögerung beeinflussen. Wenn beispielsweise
der Ablaufzeitraum zu kurz ist, wird ein Sendegerät Datenpakete verfrüht erneut übertragen.
Ein Zielgerät
kann im Begriff sein, für
ein bestimmtes Datenpaket eine ACK zu übertragen. Wenn aber der zu
dem Datenpaket gehörige
Timer im Sendegerät
abläuft,
bevor die ACK wirklich vom Sendegerät empfangen wurde, wird das Datenpaket
vom Sendegerät
erneut übertragen,
ungeachtet der Tatsache, dass das Datenpaket von dem Zielgerät empfangen
wurde. Weil es der verwendete Ablaufzeitraum dem Zielgerät nicht
erlaubte, das Datenpaket zu empfangen, zu verarbeiten und es zu
bestätigen
bevor der Timer ablief, wurde das Datenpaket nicht nur unnötigerweise
erneut übertragen,
sondern auch unnötigerweise
empfangen. Derartige unnötige
erneute Übertragungen
verwenden die vom Sende- und vom Zielgerät geteilten Kommunikationsressourcen
in uneffizienter Weise und reduzieren damit den potentiellen Datendurchsatz.
-
Ist andererseits der Ablaufzeitraum
zu lang, werden Datenpakete, die erneut übertragen werden müssen, unnötigerweise
verzögert.
Eine Verzögerung
der erneuten Übertragung
vergrößert die
Verzögerung
des gesamten Datentransfers und kann zu einem reduzierten Datendurchsatz
führen.
Beispielsweise könnte
das Zielgerät
empfangene Daten zwischenspeichern müssen, während es auf erneute Übertragungen
von fehlenden Daten wartet. Füllen sich
diese Puffer bzw. Zwischenspeicher, wird der Datentransfer effektiv
angehalten, bis einige der erneut übertragenen Datenpakete empfangen
werden. Auf diese Weise wird der Datendurchsatz reduziert.
-
Folglich ist der Ablaufzeitraum optimal,
wenn er nicht länger
ist als die Zeit, die für
die hin- und rücklaufende
Verbindung und für
die Verarbeitung im Zielgerät
nötig ist.
Wenn nur ein Kommunikationsgerät Daten
an ein anderes Kommunikationsgerät überträgt (Eins-zu-Eins-Kommunikation),
ist die optimale Länge
des Ablaufzeitraums relativ leicht zu bestimmen. Wenn jedoch viele
Kommunikationsgeräte
Daten an ein einziges Kommunikationsgerät über gemeinsam genützte Kommunikationsressourcen
senden (Viele-zu-Eins-Kommunikation),
ist der optimale Ablaufzeitraum wesentlich schwieriger zu bestimmen.
-
Die Zeit zwischen dem Übertragen
eines speziellen Datenpakets und dem Empfangen einer entsprechenden
ACK (ACK-Umkehrzeit)
kann in Viele-zu-Eins-Kommunikationen beträchtlich variieren. Eine Zeitspanne,
in der wenige der Sendegeräte
Daten übertragen;
kann von einer Zeitspanne, in der viele der Sendegeräte Daten übertragen,
gefolgt werden. Wenn viele Sendegeräte Daten an ein Zielgerät übertragen,
führt das
Anstehen der entsprechenden ACK zur Übertragung üblicherweise zu größeren Verzögerungen,
als wenn nur einige wenige Sendegeräte Daten übertragen. In dem Maße, in dem
der Datenverkehr schwankt, variieren auch die Verzögerungen
durch das Anstehen der nicht übertragenen ACK,
womit auch die ACK-Umkehrzeiten schwanken. In Eins-zu-Eins- Kommunikationen kann
die ACK-Umkehrzeit variieren, wenn das Sendegerät mit Unterbrechungen Daten überträgt. Mit
den wesentlich größeren Verkehrsschwankungen
bei Viele-zu-Eins-Kommunikationen
verstärkt
sich allerdings die Schwankungsbreite der ACK-Umkehrzeit.
-
Diese Schwankungen der ACK-Umkehrzeit machen
die Bestimmung eines optimalen Ablaufzeitraums für Many-To-One-Übertragungen wesentlich schwieriger.
Wenn der Ablaufzeitraum in Anbetracht von Zeiten hohen Verkehrsaufkommens
relativ lang gewählt
wird, wird dies wahrscheinlich zu einer zusätzlichen Verzögerung und
zu geringerem Durchsatz führen.
Wenn der Ablaufzeitraum hingegen relativ kurz eingestellt wird,
um ihn auf normales Verkehrsniveau anzupassen, werden während Zeiten hohen
Verkehrsaufkommens viele verfrühte
erneute Übertragungen
stattfinden, und der Datendurchsatz wird darunter leiden. Je größer die
Schwankungen in der ACK-Umkehrzeit sind, desto weniger angepasst wird
ein spezieller Ablaufzeitraum sein. Aus diesem Grund sind Timer-basierte
Protokolle nicht in diesem Maße
gut für
Viele-zu-Eins-Kommunikationen geeignet, als sie es für Eins-zu-Eins-Kommunikationen sind.
-
Die
US
5,664,091 offenbart Techniken zum Steuern der erneuten Übertragung
von Datenpaketen, die als fehlerhaft erkannt worden sind, um unnötige erneute Übertragungen
während
der Übertragung
von durchgehend nummerierten Datenpaketen von einem Sender zu mindestens
einem Empfänger zu
vermeiden. Die
US 5,664,091 offenbart
des Weiteren ein Timer-basiertes Protokoll. Die
US 5,664,091 offenbart nicht das Anzeigen
oder die Anzeige, dass nur nach dem Übertragungszeitraum übertragene
Datenpakete bestätigt
werden.
-
Aus diesem Grunde bedarf es eines
Verfahrens und einer Vorrichtung zur zuverlässigen Übertragung von Datenpaketen,
welche die Unzulänglichkeiten
von Timer-basierten Verfahren in Viele-zu-Eins-Kommunikationen überwinden.
-
Kurze Beschreibung
der Zeichnungen
-
1 zeigt
die Darstellung eines Blockdiagramms eines Kommunikationssystems
gemäß einer bevorzugten
Ausführungsform
der vorliegenden Erfindung.
-
2 zeigt
die Darstellung eines Blockdiagramms mit Nachrichten, die zwischen
einem Kommunikationsgerät
und einem Daten-Controller gemäß einer
ersten bevorzugten Ausführungsform
der vorliegenden Erfindung ausgetauscht werden.
-
3 zeigt
die Darstellung eines Blockdiagramms mit Nachrichten, die zwischen
einem Kommunikationsgerät
und einem Daten-Controller gemäß einer
zweiten bevorzugten Ausführungsform
der vorliegenden Erfindung ausgetauscht werden.
-
4 zeigt
ein Logikflussdiagramm mit Schritten, die von einem Kommunikationsgerät gemäß der vorliegenden
Erfindung ausgeführt
werden.
-
5 zeigt
ein Logikflussdiagramm mit Schritten, die von einem Daten-Controller
gemäß der vorliegenden
Erfindung ausgeführt
werden.
-
Beschreibung
einer bevorzugten Ausführungsform
-
Im Allgemeinen stellt die vorliegende
Erfindung ein Verfahren und eine Vorrichtung zur Übertragung
von Datenpaketen in einem Kommunikationssystem bereit. Ein Kommunika tionsgerät überträgt ein Datenpaket
zu einer ersten Übertragungszeit oder
während
eines ersten Übertragungszeitraums an
einen Daten-Controller. Der Daten-Controller bestimmt eine früheste Übertragungszeit
oder einen frühesten Übertragungszeitraum,
zu dem die Datenpakete bestätigt
werden und überträgt eine
Anzeige, dass nur nach der frühesten Übertragungszeit
oder dem frühesten Übertragungszeitraum übertragene Datenpakete
bestätigt
werden. Das Kommunikationsgerät
bestimmt dann, ob der Daten-Controller anzeigt, dass nur nach der
ersten Übertragungszeit oder
dem ersten Übertragungszeitraum übertragene Daten
bestätigt
werden. (d. h., ob der Daten-Controller anzeigt, dass das vom Kommunikationsgerät übertragene
Datenpaket nicht mehr bestätigt
werden wird). Wenn der Daten-Controller anzeigt, dass nur nach der
ersten Übertragungszeit
oder dem ersten Übertragungszeitraum übertragene
Datenpakete bestätigt
werden und das Kommunikationsgerät
noch keine Bestätigung
für das
Datenpaket empfangen hat, überträgt das Kommunikationsgerät mindestens einen
Teil des Datenpakets erneut.
-
Durch Übermittlung der Datenpakete
in dieser Art und Weise schließt
die vorliegende Erfindung die Notwendigkeit von Timern für die erneute Übertragung
in sendenden Kommunikationsgeräten
aus. Durch den Wegfall derartiger Timer können Durchsatz- und Verzögerungsprobleme
von Timer-basierten
Protokollen vermieden werden, speziell wenn viele Kommunikationsgeräte mit einem
einzigen Daten-Controller kommunizieren.
-
Die vorliegende Erfindung kann unter
Betrachtung der 1 bis 5 besser verstanden werden. 1 zeigt die Abbildung eines
Blockdiagramms eines Kommunikationssystems 100, das ein
Kommunikationsgerät 106 und
einen Daten- Controller 116 gemäß einer
bevorzugten Ausführungsform
der vorliegenden Erfindung umfasst. Das Kommunikationsgerät 106 umfasst
eine Datenquelle 114, einen Sender 112, einen
Empfänger 108 und
einen Prozessor 110. Der Daten-Controller 116 umfast
einen Sender 118, einen Empfänger 120, und einen
Prozessor 122. Jeder der Sender 112 und 118 umfasst
vorzugsweise bekannte Schaltungen, wie beispielsweise Verstärker, Modulatoren,
Aufwärtswandler
und Filter. Jeder der Empfänger 108 und 120 umfasst
vorzugsweise bekannte Schaltungen, wie beispielsweise Verstärker, Demodulatoren,
Abwärtswandler
und Filter. Jeder der Prozessoren 110 und 122 umfasst
vorzugsweise einen Mikroprozessor. Die Datenquelle 114 ist die
Quelle für
die an den Daten-Controller 116 zu übertragenden Datenpakete und
umfasst vorzugsweise einen Direktzugriffsspeicher der mit einem
Dateneingabegerät
(nicht abgebildet) gekoppelt ist, wie beispielsweise einen Personal-Computer.
Das Kommunikationsgerät 106 umfasst
vorzugsweise ein mobiles oder tragbares Funkgerät, ein Mobilfunkgerät oder ein
Funk-Datenterminal. Der Daten-Controller 116 umfasst vorzugsweise
ein "Motorola Data
Gateway" (MDG) (RTM),
das von Motorola, Inc. in Schaumburg, Illinois, im Handel erhältlich ist.
-
Der Betrieb des bevorzugten Kommunikationssystems 100 gestaltet
sich im Wesentlichen gemäß der vorliegenden
Erfindung wie folgt. Die Datenquelle 114 des Kommunikationsgerätes 106 stellt dem
Sender 112 Datenpakete zur Übertragung an den Daten-Controller 116 zur
Verfügung.
Jedes Datenpaket umfasst vorzugsweise Steuerinformationen und Benutzerdaten,
beispielsweise einen Teil einer Daten- oder einer Text-Datei. Üblicherweise
ist die Steuerinformation auf den Header bzw. Kopf des Datenpakets
beschränkt,
aller dings kann ein Datenpaket eine Mischung von Steuer- und Dateninformationen
oder ausschließlich
Steuerinformationen enthalten.
-
Das Sendekommunikationsgerät 112 überträgt während eines
ersten Übertragungszeitraums ein
erstes Datenpaket an den Daten-Controller 116 über eine
Funkkommunikationsressource 102. Der erste Übertragungszeitraum
ist das Zeitintervall oder die Generation, in der das erste Datenpaket
an den Daten-Controller 116 übertragen wurde. In der bevorzugten
Ausführungsform
umfasst das Kommunikationssystem 100 ein TDMA-Kommunikationssystem (TDMA
= "time division
multiple access"/Vielfachzugriff
im Zeitmultiplex), wie beispielsweise das "iDEN" System,
das von Motorola, Inc. im Handel erhältlich ist. Demgemäß umfasst
die Funkkommunikationsressource 102 bevorzugt einen oder
mehrere TDMA-Zeitslots. In einer alternativen Ausführungsform könnte das
Kommunikationssystem 100 ein CDMA-System (CDMA = "code division multiple
access"/Vielfachzugriff
im Codemultiplex) oder ein FDMA-System (FDMA = "frequency division multiple access"/Vielfachzugriff
im Frequenzmultiplex) umfassen.
-
Der Empfänger 120 des Daten-Controllers 116 empfängt vom
Kommunikationsgerät 106 das erste
Datenpaket. Der Prozessor 122 des Daten-Controllers bestimmt
periodisch den frühesten Übertragungszeitraum
oder die früheste
Generation der zu bestätigenden
empfangenen Datenpakete. Der Prozessor 122 erzeugt für die empfangenen
Datenpakete, die während
der frühesten
Generation übertragen
wurden, ACKs und stellt dem Sender 118 die ACKs und ein
Steuersignal zur Verfügung.
Das Steuersignal weist den Sender 118 an, eine Anzeige zu übertragen,
dass nur nach der frühesten
Generation übertragene
Datenpakete bestätigt
werden.
-
Als Antwort auf das Steuersignal überträgt der Sender 118 die
Anzeige über
eine Funkkommunikationsressource 104. Die Anzeige umfasst
eine Folge von Steuerinformationswerten, wobei jeder Steuerinformationswert
vorzugsweise in einem Teil eines TDMA-Zeitslots verbleibt. In einer
bevorzugten Ausführungsform
besteht jeder Steuerinformationswert aus einem oder mehreren Bits,
welche diejenige Generation von übertragenen
Datenpaketen repräsentieren,
die momentan von dem Daten-Controller 116 bestätigt werden.
Die Bits verbleiben in einem Teil der sogenannten Paketdaten-Slotbeschreiberblöcke (SDBs
= "slot descriptor
blocks"), die vom
Daten-Controller 116 in jedem TDMA-Zeitslot einer Abwärtsverbindung
(Daten-Controller-zu-Kommunikationsgerät) übertragen werden. Der SDB ist
der Teil des Zeitslots der Abwärtsverbindung,
der die Steuerinformation enthält,
welche die Art (z. B. Paketdaten oder Sprache) des Aufwärtsverbindungs-Zeitslots (Kommunikationsgerät-zu-Daten-Controller) anzeigen.
Sowie sich die Generation der momentan bestätigt werdenden übertragenen
Datenpakete ändert, ändern sich
das Bit oder die Bits, die jede Generation repräsentieren und bilden somit
mit der Zeit eine Folge von Steuerinformationswerten.
-
Der Empfänger 108 des Kommunikationsgeräts 106 empfängt die
Folge von Steuerinformationswerten, die anzeigen, dass nur nach
der frühesten Generation übertragene
Datenpakete bestätigt
werden. Der Kommunikationsgerät-Prozessor 110 bestimmt
dann basierend auf der Folge von Steuerinformationswerten, ob die
erste Generation (d. h. der Zeitraum, in dem das erste Datenpaket übertragen wurde)
nach der frühesten
Generation kam. Zeigt der Daten-Controller 116, dass Datenpakete,
die während
der ersten Generation übertragen wurden,
nicht mehr bestätigt
werden und der Kommunikationsgerät-Empfänger 108 noch
keine Bestätigung
des ersten Datenpakets empfangen hat, stellt der Kommunikationsgerät-Prozessor 110 ein
Steuersignal dem Kommunikationsgerät-Sender 112 zur Verfügung. Das
Steuersignal weist den Kommunikationsgerät-Sender 112 an, mindestens
einen Teil des ersten Datenpakets erneut an den Daten-Controller 116 zu übertragen.
Als Antwort auf das Steuersignal überträgt der Kommunikationsgerät-Sender 112 vorzugsweise
erneut den Benutzerdatenteil des ersten Datenpakets sowie alle Teile
des Steuerabschnitts, die für
die erneute Übertragung
unverändert
bleiben.
-
Durch die erneute Übertragung
von Datenpaketen basierend auf Anzeigen von einem Daten-Controllers,
wie oben ausgeführt,
anstatt basierend auf dem Ablaufen von Timern im Kommunikationsgerät wie im
Stand der Technik, erreicht die vorliegende Erfindung einen zuverlässigen Datentransfer
unter Vermeidung einiger Fallen, die Timer-basierten Protokollen
innewohnen. Da der Daten-Controller nach dem Übertragen der ACKs für Datenpakete,
die zu oder vor einer bestimmten Zeit oder einem bestimmten Zeitraum übertragen
wurden, anzeigt, dass solche ACKs nicht mehr übertragen werden, sind Timer
im Kommunikationsgerät
für unbestätigte Datenpakete
nicht notwendig. Kommunikationsgeräte ohne diese Timer übertragen
Datenpakete nur dann erneut, wenn entsprechende ACKs nicht empfangen
wurden und wenn der Daten-Controller
anzeigt, dass die entsprechenden ACKs nicht übertragen werden. In Zeiten
hohen Verkehrsaufkommens, wenn ACKs verzögert werden, werden derartige Kommunikationsgeräte den Daten-Controller
mit aufgrund eines vorzeitigen Ablaufens von Timern erneut übertragenen
Datenpaketen nicht überschwemmen. Demzufolge
wird der Datendurchsatz der vorliegenden Erfindung im Gegensatz
zu Timer-basierten Protokollen nicht durch unnötiges erneutes Übertragen verringert.
-
Ist der Datenverkehr sehr gering,
besitzen Kommunikationsgeräte,
die die vorliegende Erfindung verwenden, keine Timer, die vor einer
erneuten Übertragung
von verlorenen Datenpaketen ablaufen müssen. Stattdessen warten die
Kommunikationsgeräte
nur auf eine Anzeige von dem Daten-Controller, dass ACKs für die verlorenen
Datenpakete nicht länger
gesendet werden. Der Daten-Controller überträgt derartige Anzeigen, sowie
es das Verkehrsniveau erlaubt. Demzufolge werden mit der vorliegenden
Erfindung verlorene Datenpakete unter Minimierung der Datenverzögerung so
früh wie
möglich
erneut übertragen.
-
2 zeigt
die Abbildung eines Blockdiagramms mit Anzeigen, die zwischen einem
Kommunikationsgerät
und einem Daten-Controller gemäß einer
ersten bevorzugten Ausführungsform
der vorliegenden Erfindung ausgetauscht werden. In der ersten bevorzugten
Ausführungsform überträgt der Daten-Controller
periodisch eine Generationsankündigung,
die ein Bit eines Steuersignals umfasst. Dieses eine Bit der Steuerinformation
verbleibt innerhalb jedes SDB eines jeden TDMA-Zeitslots für Paketdaten, der
vom Daten-Controller übertragen
wird. Jede Generationsankündigung
zeigt explizit die Generation von übertragenen Datenpaketen an,
die der Daten-Controller momentan bestätigt (d. h. die abgehende Generation)
und implizit die Generation der neu übertragenen Datenpakete (d.
h. die ankommende Generation). In 2 empfängt das
Kommunikationsgerät
eine Generationsankündigung 206 von dem
Daten-Controller, welcher anzeigt, dass die momentan abgehende Generation
Eins (1) ist. Die Generationsankündigung 206 zeigt
des weiteren die momentan ankommende Generation bzw. den Übertragungszeitraum
für Kommunikationsgerät-Übertragungen
an. In der ersten bevorzugten Ausführungsform ist die ankommende
Generation als logisch NOT oder als das Gegenteil der abgehenden
Generation definiert. Demzufolge zeigt die Generationsankündigung 206 an,
dass die momentan abgehende Generation Eins (1) und dass die momentan
ankommende Generation Null (0) ist.
-
Das Kommunikationsgerät überträgt ein Datenpaket 208 an
den Daten-Controller. Es sei erwähnt,
dass das Datenpaket 208 nicht als Antwort auf die Generationsankündigung 206 übertragen wird.
Generationsankündigungen
zeigen nicht an, wann Übertragungen
stattfinden müssen.
Das Datenpaket 208 enthaltet vorzugsweise einen Kopfzeilenabschnitt
und einen Datenabschnitt. Der Kopfzeilenabschnitt enthält vorzugsweise
Steuerinformationen bezogen auf das Datenpaket und die gesamte Datenübertragung.
Der Datenabschnitt umfasst vorzugsweise Benutzerdaten und eine oder
mehrere zyklische Redundanzprüfungen
(CRC = "cyclic redundancy
checks" /zyklische
Redundanzchecks), die vom Daten-Controller benutzt werden, um zu
bestimmen, ob das Datenpaket fehlerfrei empfangen wurde.
-
Nach der Übertragung des Datenpakets 208 an
den Daten-Controller
empfängt
das Kommunikationsgerät
die nächste
Generationsanzeige 210 vom Daten-Controller. Die Generationsanzeige 210 zeigt an,
dass die abgehende Generation noch Eins und die ankommende Generation
noch Null ist. von der unmittelbar vor der Übertragung des Datenpakets 208 empfangenen
Generationsankündigung 206 weiß das Kommunikationsgerät, dass
das Datenpaket 208 während
des Übertragungszeit raums
oder der Generation Null übertragen
wurde. Die Regel zur Bestimmung der Generation eines übertragenen
Datenpakets könnte
alternativ eine nach der Übertragung
des Datenpakets empfangene Generationsankündigung einbeziehen. In einer
derartigen Ausführungsform
könnte
stattdessen die Generationsankündigung 210 benutzt
werden, um die Generation des Datenpakets 208 zu bestimmen.
-
Nach dem Empfangen der Generationsankündigung 210 überträgt das Kommunikationsgerät das Datenpaket 212 an
den Daten-Controller. Das Datenpaket 212 enthaltet die
gleiche Art von Kopfzeilensteuerinformation wie das Datenpaket 208,
aber andere Benutzerdaten. Von der Generationsankündigung 210 weiß das Kommunikationsgerät, dass
das Datenpaket 212 während
der Generation Null übertragen
wurde.
-
Zusätzlich zu den in 2 gezeigten Anzeigen zwischen
dem Kommunikationsgerät
und dem Daten-Controller empfängt
und bestätigt
der Daten-Controller Datenpakete, die von anderen Kommunikationsgeräten übertragen
wurden. Während
einer bestimmten ankommenden Generation empfängt der Daten-Controller eine
Gruppe von Datenpaketen. In der ersten bevorzugten Ausführungsform überträgt der Daten-Controller Generationsankündigungen, welche
die ankommende Generation der noch bestätigt werdenden Gruppe von Datenpaketen
anzeigen. Beispielsweise überträgt der Daten-Controller die Generationsankündigung 214,
welche die abgehende Generation als Eins ankündigt und anzeigt, dass die
Gruppe von Datenpaketen der Generation Eins noch bestätigt werden.
Nach dem Bestätigen
des letzten Datenpakets (nicht abgebildet) der Gruppe von Datenpaketen
mit der Generation Eins bestimmt der Daten-Controller den frühesten Übertragungszeit oder
die früheste
Generation einer Gruppe von Da tenpaketen, die noch bestätigt werden.
Nachdem nur zwei Generationen aufgrund der Verwendung eines einzelnen
Bits für
die Generationsankündigung
möglich
sind und nachdem die letzte ACK für die Generation Eins übertragen
wurde, bestimmt der Daten-Controller, dass die Gruppe von Datenpaketen der
Generation Null jetzt die früheste
Generation ist, die bestätigt
wird. Demzufolge überträgt der Daten-Controller die Generationsankündigung 216 (ein Null-Bit),
die ankündigt,
dass die Generation Null jetzt bestätigt wird und dass keine Datenpakete
der Gruppe der Datenpakete mit der Generation Eins als zu bestätigend verbleiben.
-
Eine der vom Daten-Controller während der abgehenden
Generation Null übertragene
ACK ist die ACK 218, welche das Datenpaket 208 bestätigt. Nach
dem Empfangen der ACK 218 betrachtet das Kommunikationsgerät das Datenpaket 208 als
erfolgreich an den Daten-Controller übertragen. Sowie der Daten-Controller
damit fortfährt,
ACKs (nicht abgebildet) für
die Gruppe von Datenpaketen der Generation Null zu übertragen, übertträgt der Daten-Controller die
Generationsankündigung 220,
die anzeigt, dass während
der Generation Null übertragene
Datenpakete noch bestätigt
werden.
-
Nach dem Bestätigen des letzten Datenpakets
(nicht abgebildet) der Gruppe von Datenpaketen der Generation Null, überträgt der Daten-Controller die
Generationsankündigung 222.
Das Kommunikationsgerät
empfängt
die Generationsankündigung 222 und
entdeckt einen Wechsel in dem einen Bit der Steuerinformation (d.
h. abgehende Generation) von Null auf Eins. Der Wechsel zeigt an,
dass nur nach der Generation Null (d. h. Datenpakete der Generation
Eins) übertragene
Datenpakete bestätigt
werden. Da das Kommunikationsgerät
noch keine ACK für
das Datenpaket 212 empfangen hat und das Kom munikationsgerät das Datenpaket 212 während der
Generation Null übertragen
hat, überträgt das Kommunikationsgerät einen
Teil des Datenpakets 212 erneut an den Daten-Controller. Der Benutzerdatenabschnitt
des Datenpakets 212 wird erneut als der Benutzerdatenabschnitt
des Datenpakets 224 an den Daten-Controller übertragen.
In der oben beschriebenen Weise werden unbestätigte Benutzerdaten vom Kommunikationsgerät erneut übertragen,
ohne dass es sich auf den Ablauf eines Timers verlassen muss.
-
3 zeigt
die Abbildung eines Blockdiagramms mit Nachrichten, die zwischen
einem Kommunikationsgerät
und einem Daten-Controller gemäß einer
zweiten bevorzugten Ausführungsform
der vorliegenden Erfindung ausgetauscht werden. In der zweiten bevorzugten
Ausführungsform
werden zwei Bits an Steuerinformationen vom Daten-Controller für jede Generationsankündigung übertragen.
Mit zwei Bits sind vier Steuerinformationswerte möglich: 00, 01,
10 und 11. Der Daten-Controller überträgt eine Generationsankündigung
mit dem Wert 11, um allen empfangenden Kommunikationsgeräten anzuzeigen,
dass der Daten-Controller keine Datenpakete empfangen hat, die noch
nicht bestätigt
worden sind. Die anderen drei Werte, 00, 01 und 10 zeigen die momentane
abgehende Generation an.
-
Der Daten-Controller überträgt die Generationsankündigung 302,
die anzeigt, dass es keine ausstehenden ACKs gibt, die der Daten-Controller übertragen
müsste.
Mit einigen zum Daten-Controller zu übertragenden Benutzerdaten überträgt das Kommunikationsgerät das Datenpaket 304 an
den Daten-Controller. Nach dem Empfangen der Generationsankündigung 306 bestimmt
das Kommunikationsgerät,
dass der Daten-Controller nicht das Datenpaket 304 empfangen
hat, da die Generationsankündigung 306 anzeigt,
dass der Daten-Controller
keine ACKs zu übertragen
hat. Das Kommunikationsgerät überträgt dann
den Benutzerdatenabschnitt des Datenpakets 304 erneut als
Benutzerdatenabschnitt des Datenpakets 308.
-
Überträgt der Daten-Controller
Generationsankündigungen
mit dem Wert 11, so ist in der zweiten bevorzugten Ausführungsform
die momentan ankommende Generation als 00 definiert. Aus der Generationsankündigung 306 bestimmt
das Kommunikationsgerät,
dass das Datenpaket 308 Teil der ankommenden Generation
00 ist. Wie oben bezugnehmend auf die erste bevorzugte Ausführungsform
diskutiert, kann die ankommende Generation eines übertragenen
Datenpakets alternativ dadurch bestimmt werden, dass eine Generationsankündigung verwendet
wird, die nach der Übertragung
des Datenpakets empfangen wurde, statt vor der Generationsankündigung.
-
Der Daten-Controller überträgt die Generationsankündigung 310,
die anzeigt, dass eine Gruppe von Datenpaketen, die während der
ankommenden Generation 00 empfangen wurde, bestätigt wird. Die Generationsankündigung 310 kündigt allen
empfangenden Kommunikationsgeräten
an, dass die momentane abgehende Generation 00 ist. In der zweiten
bevorzugten Ausführungsform
ist die momentane ankommende Generation die nächste Generation, die der momentanen
abgehenden Generation in der sich wiederholenden Folge der Generationen
(d. h. 00, 01, und 10) folgt. Wäre
beispielsweise die momentane abgehende Generation als 10 angekündigt, wäre die momentane
ankommende Generation 00. Da die momentane abgehende Generation
00 ist, ist die momentane ankommende Generation 01.
-
Nach dem Übertragen der letzten ACK (nicht abgebildet)
für Datenpakete
der ankommenden Generation 00, überträgt der Daten-Controller
die Generationsankündigung 312.
Die Generationsankündigung 312 kündigt die
neu abgehende Generation als 01 an und zeigt damit an, dass der
Daten-Controller ACKs
für Datenpakete
der ankommenden Generation 01 (nicht abgebildet) zu übertragen
hat und zeigt implizit an, dass die neu ankommende Generation 10 ist.
-
Das Kommunikationsgerät bestimmt,
dass die Generationsankündigung 312 auch
anzeigt, dass nur nach der ankommenden Generation 00 übertragene
Datenpakete bestätigt
werden. Das Kommunikationsgerät
macht eine derartige Bestimmung durch das Erfassen des Wechsels
in den beiden Bits der Steuerinformation zwischen den Generationsankündigungen 310 und 312 (d.
h. der Wechsel von 00 auf 01). Da das Datenpaket 308 während der
ankommenden Generation 00 übertragen
wurde und das Kommunikationsgerät
noch keine ACK für
das Datenpaket 308 empfangen hat, überträgt das Kommunikationsgerät erneut
den Benutzerdatenabschnitt des Datenpakets 308 als den
Benutzerdatenabschnitt des Datenpakets 314 an den Daten-Controller.
Aus der Generationsankündigung 312 ist
die ankommende Generation des Datenpakets 314 als 10 bestimmt.
-
Nach dem Übertragen der letzten ACK (nicht abgebildet)
für Datenpakete
der ankommenden Generation 01, überträgt der Daten-Controller
die Generationsankündigung 316.
Die Generationsankündigung 316 kündigt die
neue abgehende Generation als 10 an, und zeigt damit an, dass der
Daten-Controller
ACKs für
Datenpakete der ankommenden Generation 01 zu übertragen hat. Eines dieser
ACKs 318 wird vom Daten-Controller
für das
Datenpaket 314 übertragen.
Nach dem Übertragen
der letzten ACKs für
Datenpakete der ankommenden Generation 10 überträgt der Daten-Controller die
Generationsankündigung 320,
die anzeigt, dass der Daten-Controller ACKs für Datenpakete (nicht abgebildet)
der ankommenden Generation 00 zu übertragen hat. In der zweiten
bevorzugten Ausführungsform fährt der
Daten-Controller fort, durch die Generationen 00, 01, und 10 zu
laufen, bis der Daten-Controller alle
empfangenen Datenpakete bestätigt
hat. Nach der Bestätigung
aller empfangenen Datenpakete überträgt der Daten-Controller
wieder Generationsankündigungen
mit dem Wert 11, um anzuzeigen, dass keine Bestätigungen ausstehen.
-
Die Fähigkeit zum Übertragen
einer einzigen Generationsankündigung,
die anzeigt, dass keine Bestätigungen
ausstehen, ist ein Vorteil, den die zweite bevorzugte Ausführungsform
gegenüber
der ersten bevorzugten Ausführungsform
auszeichnet. Wenn in der ersten bevorzugten Ausführungsform keine ACKs ausstehen,
wechseln die Generationsankündigungen
zwischen Null und Eins. Ein Kommunikationsgerät, das ein Datenpaket überträgt, welches
nicht vom Daten-Controller empfangen worden ist, muss die Benutzerdaten
in dem Datenpaket erneut übertragen.
Je früher
die Benutzerdaten erneut übertragen
werden, desto geringer fällt
die Verzögerung
für die
Benutzerdaten aus.
-
In der ersten bevorzugten Ausführungsform muss
das Kommunikationsgerät
mindestens drei Generationsankündigungen
empfangen, um zu bestimmen, dass die Benutzerdaten erneut übertragen
werden müssen.
Zuerst muss das Kommunikationsgerät eine Generationsankündigung
empfangen, um die ankommende Generation des übertragenen Datenpakets zu
bestimmen. Zum Zweck der Anschaulichkeit ist die ankommende Generation
Null. Das Kommunikationsgerät
muss dann Generationsankündigungen
empfangen, die anzeigen, dass die abgehende Generation Null ist
und dass die abgehende Generation wieder Eins ist. Nach dem Empfangen
aller drei Generationsankündigungen
können
die Benutzerdaten erneut übertragen
werden. Fehlt eine Generationsankündigung, können mehr als drei Generationsankündigungen
notwendig sein, was die Benutzerdaten weiter verzögert.
-
Wenn in der zweiten bevorzugten Ausführungsform
das Kommunikationsgerät
eine Generationsankündigung
mit dem Wert 11 empfängt,
weiß das
Kommunikationsgerät
unmittelbar, dass irgendwelche unbestätigten Daten erneut übertragen
werden müssen.
Die schnelleren erneuten Übertragungen
der zweiten Ausführungsform
werden durch den Kompromiss des Hinzufügens eines zusätzlichen Bits
zu den Generationsankündigungen
der ersten bevorzugten Ausführungsform
erreicht. Jede Generationsankündigung
in der zweiten Ausführungsform erfordert
die Übertragung
zweier Bits anstatt eines. Demzufolge wird in der zweiten bevorzugten
Ausführungsform
Kommunikationsbandbreite reduzierten Datenverzögerungen und einem möglicherweise
höheren
Durchsatz geopfert.
-
4 zeigt
ein Logikflussdiagramm 400 mit Schritten, die vom Kommunikationsgerät gemäß der vorliegenden
Erfindung ausgeführt
werden. Die Logikfluss beginnt (402), wenn das Kommunikationsgerät Steuerinformationen
von einem Daten-Controller empfängt
(404), der eine Übertragungszeit
oder einen Übertragungszeitraum
anzeigt. Nach dem Empfang der Steuerinformationen überträgt (406)
das Kommunikationsgerät
ein Datenpaket. Der Daten-Controller und das Kommunikationsgerät betrachten
das Datenpaket als zu der Übertragungszeit oder
während
des Übertragungszeitraums übertragen,
der in der Steuerinformation angezeigt wird. Wie oben mit Bezug
auf 2 ausgeführt, könnte das Kommunikationsgerät alternativ
das Datenpaket vor dem Empfangen (404) von Steuerinformationen
eines Daten-Controllers übertragen
(406), der die Übertragungszeit
oder den Übertragungszeitraum anzeigt.
In einer anderen Ausführungsform,
in der das Kommunikationsgerät
und der Daten-Controller eine gemeinsam benutzte Zeitreferenz enthält, könnte das
Kommunikationsgerät
das Datenpaket ohne das Empfangen (406) von Steuerinformationen
des Daten-Controllers übertragen
(406).
-
Durch das Überwachen der vom Daten-Controller
empfangenen Nachrichtenübertragung
bestimmt (407) das Kommunikationsgerät, ob vom Daten-Controller
eine ACK für
das Datenpaket empfangen wurde. Wenn eine ACK empfangen wurde, endet der
Logikfluss (412). Wenn für das Datenpaket keine ACK
empfangen wurde, bestimmt (408) das Kommunikationsgerät durch
periodische Überwachung
der vom Daten-Controller empfangenen Steuerinformationen, ob der
Daten-Controller anzeigt, dass nur nach der Übertragungszeit oder nach dem Übertragungszeitraum übertragene
Datenpakete bestätigt
werden. Wenn die Steuerinformation nicht anzeigt, dass nur nach
der Übertragungszeit
oder nach dem Übertragungszeitraum übertragene
Datenpakete bestätigt werden,
fährt das
Kommunikationsgerät
fort, zu bestimmen (407), ob eine ACK für das Datenpaket empfangen
wurde. Wenn die Steuerinformation anzeigt, dass nur nach der Übertragungszeit
oder nach dem Übertragungszeitraum übertragene
Datenpakete bestätigt
werden, überträgt (410)
das Kommunikationsgerät
mindestens den Benutzerdatenabschnitt des Datenpakets erneut an
den Daten-Controller, und der Logikfluss endet (412).
-
5 zeigt
ein Logikflussdiagramm 500 der Schritte, die von einem
Daten-Controller gemäß einer
bevorzugten Aus führungsform
der vorliegenden Erfindung ausgeführt werden. Der Logikfluss
beginnt (502), wenn der Daten-Controller Steuerinformationen überträgt (504),
welche die Übertragungszeit oder
den Übertragungszeitraum
von Datenpaketen anzeigen. In der Ausführungsform, in der die Steuerinformationen
die Übertragungszeit
enthalten, enthalten sowohl der Daten-Controller als auch das Kommunikationsgerät eine gemeinsam
benutzte Zeitreferenz (z. B. einen Empfänger für das globale Positionsbestimmungssystem
(GPS)). In der Ausführungsform,
in der die Steuerinformationen den Übertragungszeitraum enthalten,
nehmen die übertragenen
Steuerinformationen vorzugsweise die Form von Generationsankündigungen
an, die periodisch die momentane abgehende Generation ankündigen.
Die momentan ankommende Generation wird dann beim empfangenden Kommunikationsgerät bestimmt,
wie oben erwähnt,
durch Verwenden der explizit angekündigten abgehenden Generation.
Alternativ könnte die
vom Daten-Controller übertragene
Steuerinformation explizit sowohl die momentan abgehende als auch
die ankommende Generation ankündigen.
-
Der Daten-Controller empfängt (506)
eine Gruppe von Datenpaketen von einem oder mehreren Kommunikationsgeräten. Alle
Datenpakete der Gruppe wurden während
einer der angekündigten Übertragungszeiträume oder
zu ihren angekündigten Übertragungszeiten übertragen.
Der Daten-Controller bestimmt (508) dann die früheste Übertragungszeit
oder den frühesten Übertragungszeitraum,
zu dem oder während
dem der Daten-Controller eine Gruppe von zu bestätigenden Datenpaketen empfangen
hat. Vorzugsweise bestätigt
der Daten-Controller zuerst
die während
des frühesten Übertragungszeitraums
oder zur frühesten Übertragungszeit
empfangene Gruppe von Datenpaketen. Nach dem Abschließen all
dieser Bestätigungen überträgt (510) der
Daten-Controller eine Anzeige, dass nur nach der frühesten Übertragungszeit
oder nach dem frühesten Übertragungszeitraum
empfangene Datenpakete bestätigt
werden. In einer bevorzugten Ausführungsform führt der
Daten-Controller die Anzeige dadurch aus, dass der Wert der übertragenen
Generationsankündigungen
geändert
wird. Auf diese Weise werden die Kommunikationsgeräte benachrichtigt,
dass gewisse Datenpakete nicht mehr bestätigt werden und dass die Benutzerdaten,
die in den unbestätigten
Datenpaketen enthalten sind, erneut übertragen werden müssen.
-
Die bevorzugten Ausführungsformen
der vorliegenden Erfindung umfassen die Übertragung von Generationsankündigungen,
um Zeiträume,
in denen Datenpaket- und Bestätigungsübertragungen stattfinden,
anzuzeigen. In einer anderen Ausführungsform können spezielle Übertragungszeiten Übertragungszeiträume ersetzen.
In einer derartigen Ausführungsform,
wie oben erwähnt, überträgt der Daten-Controller
Steuerinformationen, die Übertragungszeiten
statt Übertragungszeiträumen anzeigen. Jedes
von einem Kommunikationsgerät übertragene Datenpaket
hat eine spezielle Übertragungszeit
statt eines Übertragungszeitraums.
Der Daten-Controller bestimmt
die früheste Übertragungszeit,
zu der Datenpakete bestätigt
werden, und überträgt eine
Anzeige, das nur nach dem frühesten Übertragungszeit übertragene
Datenpakete bestätigt
werden. Daraufhin vergleicht jedes Kommunikationsgerät die Übertragungszeit
jedes unbestätigten
Datenpakets mit der frühesten Übertragungszeit.
Auf diese Weise bestimmt ein bestimmtes Kommunikationsgerät, ob der Daten-Controller
anzeigt, dass nur nach einer Übertragungs zeit
eines bestimmten unbestätigten
Datenpaketes übertragene
Datenpakete bestätigt
werden. Wenn der Daten-Controller derartiges anzeigt, überträgt schließlich das
bestimmte Kommunikationsgerät
mindestens einen Teil des bestimmten und bestätigten Datenpakets erneut.
-
Die vorliegende Erfindung umfasst
ein Verfahren und eine Vorrichtung zur Übertragung von Datenpaketen
in einem Kommunikationssystem. Mit dieser Erfindung wird eine zuverlässige Datenkommunikation
ohne die Verwendung von Timern für
unbestätigte
Datenpakete in Kommunikationsgeräten erreicht.
Ein Daten-Controller überträgt eine
Anzeige, dass nur nach einer bestimmten Zeit oder nach einem bestimmten
Zeitraum übertragene
Datenpakete bestätigt
werden. Kommunikationsgeräte
verwenden diese Anzeige anstatt des Ablaufens von Timern, um zu
bestimmen, ob Informationen an den Daten-Controller erneut übertragen werden müssen oder
nicht. Die Beseitigung von Timern vermeidet die Probleme, die solche
Timer verursachen können,
wie reduzierter Datendurchsatz und erhöhte Datenverzögerung.
-
Während
die vorliegende Erfindung im Speziellen unter Bezugnahme auf bestimmte
Ausführungsformen
gezeigt und beschrieben wurde, ist es dem Fachmann klar. dass verschiedene Änderungen in
Form oder in Details vorgenommen werden können, ohne vom Gegenstand der
vorliegenden Erfindung, der in den Ansprüchen ausgeführt wird, abzuweichen.