-
HINTERGRUND DER ERFINDUNG
-
I. Gebiet der Erfindung
-
Die
aktuelle Erfindung bezieht sich auf schnurlose bzw. drahtlose Kommunikationen
bzw. Nachrichtenübermittlungen.
Spezieller bezieht sich die vorliegende Erfindung auf ein verbessertes
Verfahren und System zum zuverlässigen
Senden bzw. Übertragen
von Daten über
einen drahtlosen Kanal während
der Überhang bzw.
Overhead der in dem Fehlersteuerungsprotokoll inhärent ist,
minimiert wird.
-
II. Beschreibung der verwandten Technik
-
Die
Nutzung von Modulationstechniken mit Codemultiplex-Vielfachzugriff (code
division multiple access, CDMA) ist eine von mehreren Techniken
zum Ermöglichen
von Kommunikationen bei denen eine große Anzahl von Systemnutzern
vorhanden ist. Andere Mehrfachzugriffs-Kommunikationssystemtechniken, wie z.B.
Zeitmultiplex-Vielfachzugriff (time division multiple access, TDMA),
Frequenzmultiplex-Vielfachzugriff (frequency division multiple access,
FDMA) und AM-Modulationsschemata, wie z.B. amplitudenkompantiertes Einzelseitenband
(amplitude companded single sideband, ACSSB) sind in der Technik
bekannt. Diese Techniken sind standardisiert worden um eine Zusammenarbeit
zwischen Ausrüstung
zu ermöglichen,
die von unterschiedlichen Firmen hergestellt wurde. Codemultiplex-Vielfachzugriffs-Kommunikationssysteme
sind in den Vereinigten Staaten standardisiert worden im Telecommunications
Industry Association TIA/EIA/IS-95-B mit dem Titel „MOBILE
STATION-BASE STATION COMPATIBILITY STANDARD FOR DUAL-MODE WIDEBAND SPREAD
SPECTRUM CELLULAR SYSTEMS",
hier im Folgenden als IS-95 bezeichnet.
-
IS-95
wurde ursprünglich
optimiert zur Übertragung
von Sprachrahmen mit variabler Rate. Um Zweiweg-Sprachkommunikationen
zu unterstützen
und zwar typischerweise in drahtlosen Telefonanwendungen, ist es
wünschenswert,
dass ein Kommunikationssystem in etwa konstante und minimale Datenverzögerung vorsieht.
Aus diesem Grund sind IS-95 Systeme entworfen worden mit leistungsfähigen Vorwärtsfehlerkorrektur-(forward
error correction, FEC)Protokollen und Vocodern bzw. Sprachcodierern,
die entworfen sind um gemäßigt auf
Sprachrahmenfehler anzusprechen. Fehlersteuerungsprotokolle, die
Rahmenwiederübertragungsprozeduren
erfordern, fügen
unakzeptable Verzögerungen
der Sprachübertragung
hinzu, sind somit nicht in die IS-95 Spezifikation entworfen.
-
Die
Optimierungen, die die allein stehende IS-95 Spezifikation ideal
für Sprachanwendungen
machen, machen die Nutzung für
Paketdatenanwendungen schwierig. Bei vielen Nicht-Sprachanwendungen,
wie z.B. der Übertragung
von Internetprotokoll (IP)-Daten sind die Verzögerungsanforderungen von dem
Kommunikationssystem viel weniger eng als bei Sprachanwendungen.
In dem Übertragungssteuerungsprotokoll
(Transmission Control Protocol, TCP), dem wahrscheinlich meist verwendeten
der Protokolle in einem IP-Netzwerk, sind
praktisch unendliche Übertragungsverzögerungen
zugelassen, um eine fehlerfreie Übertragung
zu garantieren. TCP nutzt Wiederübertragungen
bzw. erneute Übertragungen
von IP-Datagrammen, wie IP-Pakete üblicherweise genannt werden,
um diese Transportzuverlässigkeit
vorzusehen.
-
IP-Datagramme
sind für
gewöhnlich
zu groß um
in einen einzelnen IS-95
Rahmen zu passen. Selbst nach dem Teilen eines IP-Diagramms in Segmente,
die klein genug sind um in eine Folge von IS-95 Rahmen zu passen,
müsste
eine gesamte Folge von IS-95 Rahmen ohne Fehler empfangen werden,
damit das einzelne IP-Datagramm für TCP nützlich wäre. Die für ein IS-95 System typische Rahmenfehlerrate
macht die Wahrscheinlichkeit von fehlerfreiem Empfang von allen
Segmenten eines einzelnen Datagramms sehr niedrig.
-
Wie
in IS-95 beschrieben, ermöglichen
bzw. aktivieren alternative Dienstoptionen die Übertragung von anderen Arten
von Daten anstelle von Sprachrahmen. Der TIA/EIA/IS-707-A mit dem
Titel „DATA
SERVICE OPTIONS FOR SPREAD SPECTRUM SYSTEMS", im Folgenden als IS-707 bezeichnet,
beschreibt Prozeduren, die bei der Übertragung von Paketdaten in
einem IS-95 System genutzt werden.
-
Das
Funkverbindungsprotokoll (Radio Link Protocol, RLP) ist beschrieben
in dem TIA/EIA/IS-707-A.8, mit dem Titel „DATA SERVICE OPTIONS FOR
SPREAD SPECTRUM SYSTEMS: RADIO LINK PROTOCOL TYPE 2", hierin bezeichnet
als RLP2. RLP2 beinhaltet ein Fehlersteuerungsprotokoll mit Rahmenwiederübertragungsprozeduren über die
IS-Rahmenschicht. RLP ist von einer Klasse von Fehlersteuerungsprotokollen, die
bekannt sind als NAK-basierte
ARQ-Protokolle, die alle in der Technik wohl bekannt sind. Das IS-707 RLP ermöglicht die Übertragung
von einem Bytestrom, und zwar eher als eine Folge von Sprachrahmen, über ein IS-95
Kommunikationssystem.
-
Mehrere
Protokollschichten residieren typischerweise oberhalb der RLP-Schicht.
IP-Datagramme, beispielsweise, werden typischerweise in einen Punkt-zu-Punkt-Protokoll
(Point-To-Point Protocol, PPP) Bytestrom konvertiert bevor sie als
ein Bytestrom der RLP-Protokollschicht präsentiert werden. Da die RLP-Schicht das
Protokoll und die Rahmeneinteilung bzw. Rahmung von höheren Protokollschichten
ignoriert, wird von dem durch das RLP transportierten Strom von
Daten gesagt, dass er ein „merkmalsloser
Bytestrom" sei.
-
RLP
wurde ursprünglich
entworfen zum Befriedigen der Anforderungen des Sendens großer Rahmen durch
einen IS-95 Kanal. Beispielsweise, falls ein IP-Datagramm von 500
Bytes einfach in IS-95 Rahmen gesendet würde, die jeweils 20 Bytes befördern, würde das
IP-Datagramm 25 aufeinander folgende IS-95 Rahmen füllen. Ohne
irgendeine Art von Fehlersteuerungsschicht müssten alle 25 von diesen Rahmen
ohne Fehler empfangen werden, damit das IP-Datagramm für höhere Protokollschichten
nützlich
wäre. Bei
einem IS-95 Kanal,
der eine Rahmenfehlerrate von 1% besitzt, wäre die effektive Fehlerrate
der IP-Datagrammauslieferung (1 – (0,99)25)
oder 22%. Dies ist eine sehr hohe Fehlerrate im Vergleich zu den
meisten Netzwerken, die genutzt werden zum Befördern von Internetprotokollverkehr.
RLP ist entworfen worden als ein Verbindungsschichtprotokoll, welches
die Fehlerrate von IP-Verkehr
verringern würde,
um mit der typischen Fehlerrate eines 10Base2-Internetkanals vergleichbar zu sein.
-
Die
International Telecommunications Union hat kürzlich aufgefordert zur Einreichung
von vorgeschlagenen Verfahren zum Vorsehen von Sprachdiensten mit
hoher Datenrate und hoher Qualität über drahtlose Kommunikationskanäle. Ein
erster dieser Vorschläge
wurde herausgegeben durch die Telecommunications Industry Association
mit dem Titel „The
cdma2000 ITU-R RTT Candiate Submission" und hierin im Folgenden als cdma2000
bezeichnet. Ein zweiter dieser Vorschläge wurde herausgegeben durch
das European Telecommunications Standards Institute (ETSI), mit
dem Titel „The
ETSI UMTS Terrestrial Radio Access (UTRA) ITU-R RTT Candidate Submission", auch bekannt als „Breitband
CDMA" bzw. „wideband
CDMA" und hierin
im Folgenden bezeichnet als W-CDMA. Ein dritter Vorschlag wurde
eingereicht durch U.S. TG 8/1 mit dem Titel „The UWC-136 Candidate Submission", hierin im Folgenden
bezeichnet als EDGE. Die Inhalte dieser Einreichungen sind öffentlich
und sind auf dem Gebiet der Technik wohlbekannt.
-
RLP2
ist optimiert zur Nutzung mit IS-95B, bei dem der Ratensatz bzw.
Geschwindigkeitssatz, der von der Kanalkapazität abgeleitet wird, und während einem
Paketdatenanruf genutzt wird, im Wesentlichen für die Dauer des Anrufs fest
bzw. fixiert ist. Basierend auf dieser Annahme von fixierten Ratensätzen ist
RLP2 entworfen worden mit der Annahme, dass die erneut gesendeten
bzw. wiederübertragenen
RLP-Rahmen innerhalb eines Maximums von drei aufeinander folgenden
RLP-Segmenten gesendet werden können.
Die Wahrscheinlichkeit, dass eines dieser drei Segmente verloren
wird, den Verlust von einem wiedergesendeten RLP-Rahmen verursachend,
ist durch die Designer von RLP2 als akzeptabel angesehen worden.
-
Bei
cdma2000 jedoch, kann die für
einen einzelnen Nutzer verfügbare
Kanalkapazität
und somit die während
einem Paketdatenanruf genutzte ma ximale Datenrate sich umfangreich
und schnell ändern.
Zum Beispiel, während
dem Ablauf eines einzelnen cdma2000-Anrufs kann sich die zusätzliche
(supplemental) Kanalkapazität,
die durch eine Paketdatendienstoption genutzt wird, von 9,6 Kilo-Bit
pro Sekunde (kbps) zu mehr als 307 kbps variieren. Bei einer einfachen
Erweiterung von dem RLP2 könnte
die maximale Anzahl von Segmenten, die während Wiedersendungen bzw.
erneuten Übertragungen
genutzt wird, nach Bedarf erhöht
werden, um die Änderung
der Datenraten aufzunehmen. Weil die Kapazität eines Anrufkanals während einem
Anruf abnehmen kann, könnte
ein erfolglos bei einer hohen Rate bzw. Geschwindigkeit gesendeter
Rahmen mit voller Rate 30 oder mehr aufeinander folgende cdma2000-Segmente
mit niedrigerem Ratensatz überspannen. Die
hohe Wahrscheinlichkeit von einem oder mehrerer jener cdma2000-Segmente
macht eine derartig einfache Erweiterung des RLP2 weitgehend unpraktisch
zur Nutzung mit cdma2000.
-
RLP2
ist optimiert worden um einen minimalen Protokollüberhangraum über die
zwei IS-95 Ratensätze,
bekannt als Ratensatz 1 (Rate Set 1, RS1) und Ratensatz 2 (Rate
Set 2, RS2) zu erfordern. Die RLP-Rahmensequenznummern in RLP2 sind 8
Bits lang, eine Größe die ideal
für Computerverarbeitung
ist. Da die in cdma2000 spezifizierten Ratensätze RS1 und RS2 beinhalten,
wäre es
sehr wünschenswert,
dass ein RLP der für
cdma2000 (RLP2000) entworfen ist, wenigstens so effizient wie RLP2
wäre, und
zwar wenn verwendet bei RS1 und RS2. Weil ein Schalten bzw. Umschalten
von RLP-Protokollen wenn immer der Ratensatz sich ändert, Komplexität zu RLP2000
hinzufügen
würde,
ist es wünschenswert,
dass ein einzelnes RLP2000-Protokoll effizient RS1, RS2 und all
die höheren
cdma2000-Datenraten
unterstützt,
ohne eine erneute Synchronisation bzw. Resynchronisation oder substantielle
Protokollkomplexität
zu erfordern.
-
Document
US 5 444 709 stellt den
nächstliegenden
Stand der Technik dar, und offenbart ein System und Verfahren zum
Senden bzw. Übertragen
eines Bytestroms und um an sie Sequenznummern zuzuweisen.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Die
vorliegende Erfindung kann genutzt werden zum Entwerfen eines verbesserten
RLP um effiziente Übertragung
von einem merkmalslosen Bytestrom über einen Kanal mit variierender
Kapazität
zu ermöglichen. Ein
exemplarisches Ausführungsbeispiel
der Erfindung ist so effizient wie RLP2, wenn es über einen
Kanal genutzt wird, der die gleiche Kapazität wie IS-95 RS1 und RS2 besitzt.
Zu der gleichen Zeit ermöglicht
auch ein verbessertes RLP, entworfen in Übereinstimmung mit der aktuellen
Erfindung, eine Übertragung
von Daten mit variierenden Kanalkapazitäten bis zum Maximum und das
Maximum überschreitend,
das in cdma2000 spezifiziert ist. Die vorliegende Erfindung ist
anwendbar auf jedwedes Kommunikationssystem, das eine Übertragung
von einem Bytestrom über
einen drahtlosen Kanal einsetzt. Die vorliegende Erfindung ist anwendbar
auf Systeme, wie z.B. cdma2000, W-CDMA und EDGE, wobei ein Bytestrom
innerhalb der Luftschnittstellenrahmen befördert werden kann, die zur
Verwendung durch das drahtlose Kommunikationssystem spezifiziert
sind.
-
Die
Effizienz von den Ausführungsbeispielen
der Erfindung bei variierenden Raten bzw. Geschwindigkeiten ist
möglich
gemacht worden durch Ändern
der Interpretation der Sequenznummern, die in dem RLP-Protokollkopf
befördert
werden. Bei RLP2 werden Sequenznummern genutzt zum Bezeichnen von
Rahmennummern. Dies ist für
RLP2 geeignet, da die in einem Paketdatenanruf genutzte Kanalkapazität und somit die
in einem vollratigen Rahmen beförderte
maximale Anzahl von Datenbytes beide konstant sind. RLP2 nutzt eine
einbytige Rahmensequenznummer und Rahmen werden in 20 Millisekunden
(ms)-Intervallen gesendet bzw. übertragen.
Wenn ein RLP2-Rahmen
während
der Übertragung
verloren geht, werden die Daten von dem verloren gegangenen Rahmen
segmentiert und zwar in so viele wie drei erneut zu übertragende
(retransmit) Segmente, wobei jeder die gleiche Sequenznummer wie
der ursprüngliche
bzw. originale verloren gegangene Rahmen besitzt.
-
Beim
Versuch RLP2 zur Nutzung über
Kanäle
mit umfangreich variierender Kapazität anzupassen treten Schwierigkeiten
auf, wenn ein Rahmen auf einem Kanal mit hoher Kapazität (z.B.
307 kbps) auf einem Kanal mit niedriger Kapazität (z.B. 9,6 kbps) erneut gesendet
werden muss. Unter Verwendung eines Rahmenintervalls von 20 ms könnte ein
vollratiger Rahmen bzw. Vollratenrahmen auf einem 307 kbps-Kanal
bis zu 750 Bytes von Daten befördern.
Ein derartiger Rahmen könnte
während
der Übertragung
verloren gehen, und zur gleichen Zeit könnte die Kanalkapazität auf 9,6
kbps reduziert werden. Bei RLP2 beträgt die Kapazität eines 9,6
kbps vollratigen 20 ms Rahmen 20 Bytes. Bei einer einfachen Erweiterung
der maximal zulässigen
Wiederübertragungssegmente
würde eine
erfolgreiche Wiederübertragung
bzw. erneute Übertragung
von einem einzelnen Rahmen von 750 Bytes von Daten eine erfolgreiche Übertragung
von ungefähr
38 aufeinander folgenden 9,6 kbps vollratigen RLP2-Wiederübertragungssegmenten
erfordern. Weil alle Wiederübertragungssegmente
die gleiche Sequenznummer besitzen würden, würde der Verlust von einem von
jenen 38 Wiederübertragungssegmenten
den Verlust des gesamten wieder übertragenen
Rahmens verursachen. Der Empfänger könnte individuelle
Wiederübertragungssegmente
nicht negativ bestätigen
(negatively-acknowledge, NAK). Falls die Luftschnittstellen-Rahmenfehlerrate
1% wäre,
wäre die
Wahrscheinlichkeit der erfolgreichen Übertragung von 38 aufeinander
folgenden vollratigen RLP2-Wiederübertragungssegmenten
ungefähr
68%. In diesem Szenarium würde
die Wiederübertragung
von Segmenten häufig
fehlschlagen, einen Datenverlust verursachen und eine Unterbrechung
in dem Bytestrom aufgrund von RLP2-Wiedersynchronisation bzw. erneuter RLP2-Synchronisation
verursachen. Somit würde
eine derartige einfache Erweiterung von RLP2 häufig zu verlorenen Daten führen, wann
immer ein vollratiger Rahmen mit hoher Kapazität über einen Kanal mit niedriger Kapazität erneut
zu übertragen
bzw. wiederzusenden wäre.
-
Eine
Art und Weise eine zuverlässigere
Datenwiederübertragung
zu erreichen, wäre
es, eine Bytesequenznummer in dem RLP-Kopf anstelle einer Rahmensequenznummer
zu nutzen. Dann würde
nach dem Verlust eines gro ßen
hochratigen RLP-Rahmens, auf den kurz danach eine Verringerung der
Kanalkapazität folgt,
die Daten in dem verloren gegangenen Rahmen in kleine unabhängige RLP-Wiederübertragungsrahmen unterteilt
werden können.
Der Empfänger
wäre nicht
gezwungen, 38 aufeinander folgende Wiederübertragungsrahmen ohne Fehler
zu empfangen. Der Empfänger
könnte
akzeptieren, welche Wiederübertragungsrahmen
auch immer er erfolgreich empfängt
und einfach jedwelche verlorenen wieder übertragenen Rahmen negativ
bestätigen
(NAK). Wiederum bei der Verwendung einer Luftschnittstellen-Rahmenfehlerrate
von 1% wäre
die Wahrscheinlichkeit, dass das gleiche wieder übertragene Segment zweimal
aufeinander folgend verloren würde,
0,01%.
-
Ein
Nachteil des Nutzens einer Bytesequenznummer anstelle einer Rahmensequenznummer
ist die größere Anzahl
von Bits in einer Bytesequenznummer, um die gleichen Daten zu repräsentieren.
Falls eine Bytesequenznummer bei einem 9,6 kbps vollratigen RLP2-Rahmen
genutzt werden würde,
müsste
die Sequenznummer 5 Bits länger
als die Rahmensequenznummer mit 8 Bit sein. Bei cdma2000, wo die
Kanalkapazität
von 9,6 kbps bis zum 32-fachen jener Kapazität (ungefähr 307 kbps) variieren kann,
könnte
ein vollratiger Rahmen mit 307 kbps bis zu 750 RLP-Datenbytes befördern. Die
Anzahl von Bytesequenznummernbits, die notwendig sind zum Nachführen bzw.
Verfolgen der gleichen Dauer von 20 Millisekundenrahmen, wie bei RLP2,
beträgt
wenigstens 18 Bits. Um Platz zu schaffen für eine 18-bitige Bytesequenznummer
in einem 9,6 kbps RLP-Rahmen, wäre
der Rahmen fähig
zwei Datenbytes weniger zu befördern,
eine Verringerung von 10%.
-
Die
Ausführungsbeispiele
der Erfindung sehen die Vorteile von großen Bytesequenznummern vor, während ein
Bruchteil von den Sequenznummernbits in der Mehrheit der Luftschnittstellenrahmen
gesendet wird. In einem Ausführungsbeispiel
der Erfindung wird eine 20-bitige Bytesequenznummer genutzt zum
Nachführen
empfangener Daten. Die Anzahl von Bytes, die mit einer Sequenznummer
nachgeführt
werden können, wird
der Sequenznum mernraum genannt. In dem Fall einer Sequenznummer
mit 20 Bit ist die Größe des Sequenznummernraums
220.
-
Erlangen
der Vorteile von einer großen
Sequenznummer ohne diese zu der durchschnittlichen Rahmenkopfgröße zu addieren
wird erreicht durch sorgfältiges
Auswählen
von Teilen des Sequenznummernraums, der für gesendete Datenbytes unzugewiesen
bleibt. Mit anderen Worten, wird ein Teil des Sequenznummernraums
nicht genutzt werden um tatsächlich
gesendete Bytes nachzuführen
bzw. zu verfolgen und kann als verschwendet betrachtet werden. Die
Größe der Sequenznummer
wird derart gewählt,
dass eine Verschwendung des Sequenznummernraums zulässig ist,
ohne die Leistungsfähigkeit
des Protokolls zu beeinflussen. Zum Beispiel, falls eine 18-bitige
Sequenznummer notwendig ist um einen Übertragungsverlust von 5 Sekunden
auf einem 307 kbps-Kanal zu überstehen,
erlaubt die Nutzung von einer 20-bitigen
Sequenznummer, dass drei Viertel des Sequenznummernraums ungenutzt
vergehen, ohne die maximal zulässige
Länge des Übertragungsverlusts
zu beeinflussen.
-
Der
ungenutzte Teil des Sequenznummernraums wird derart gewählt, dass
das erste Byte von jedem neuen gesendeten Datenrahmen bei einer
vorher bestimmten Distanz startet, eine Seitengröße genannt, und zwar von dem
ersten Byte von dem vorhergehenden Datenrahmen. Zum Beispiel, falls
das erste Byte im Rahmen n eine Sequenznummer von 1000 besitzt und
die Seitengröße 100 ist,
wird das erste Byte vom Rahmen n + 1 auf der nächsten Seite mit einer Sequenznummer
von 1100 starten. Falls der Rahmen n nur 40 Byte befördert, nummeriert
von 1000 bis 1039, dann würde
der Sequenznummernraum von 1040 bis 1099 ungenutzt vergehen. Die
Motivation diese augenscheinliche Verschwendung von Sequenznummernraum
zuzulassen, erlaubt eine Verringerung der Bitgröße der Sequenznummer, die in
dem Rahmen gesendet wird. In dem gerade gezeigten Beispiel könnte die
Sequenznummer durch 100 dividiert werden bevor sie in den Rahmen
eingefügt wird,
und könnte
deshalb durch wenigsten 6 Bits weniger repräsentiert werden. In einem bevorzugten
Ausführungsbeispiel
der Erfindung sind Rahmen größen zweier
Potenzen, wie z.B. 64 um Computersoftwaremanipulation von Sequenznummern
zu erleichtern.
-
In
dem vorher beschriebenen Szenarium, bei dem 750 Datenbytes in einem
hochratigen Rahmen verloren wurden, adaptiert sich das bevorzugte
Ausführungsbeispiel
der Erfindung einfach auf eine erneute Übertragung in gleicher Weise
auf Kanälen
mit hoher Kapazität
wie auch mit niedriger Kapazität.
Bei einem Kanal mit hoher Kapazität werden die Daten einfach
in einem oder zwei wieder bzw. neu übertragenen Rahmen übertragen.
Falls jedoch die Kapazität
des Kanals abgenommen hat, werden die wieder zu übertragenden Datenbytes zwischen
mehreren unabhängigen
wieder übertragenen
Rahmen aufgeteilt, wobei jeder seine eigene Sequenznummer besitzt.
Die Nutzung von unabhängigen
Wiederübertragungssequenznummern
hat Vorteile gegenüber
der segmentierten Wiederübertragung,
die durch RLP2 spezifiziert ist. Falls ein einzelnes RLP2-Wiederübertragungssegment
bei der Übertragung
verloren geht, müssen
dann alle die Segmente, die die gleiche Sequenznummer tragen, wiederum
wieder übertragen
werden, um die Daten in dem verlorenen Segment wiederzugewinnen
bzw. aufzudecken. Im Gegensatz dazu, falls ein oder mehrere von
den unabhängig
nummerierten Wiederübertragungsrahmen
bei der Übertragung
verloren gehen, kann der Empfänger
den individuellen verlorenen Wiederübertragungsrahmen negativ bestätigen (NAK).
Nach dem Empfangen des zweiten NAK kann der Sender den individuellen
Wiederübertragungsrahmen
ein zweites Mal senden. Wiederum unter Verwendung der Luftschnittstellen-Rahmenfehlerrate
von 1% ist die Wahrscheinlichkeit, dass der gleiche wieder übertragene
Rahmen zweimal hintereinander verloren geht, 0,01%. Die RLP-Wiedersynchronisation,
ihr assoziierter Datenverlust und die Bytestromdiskontinuität sind selten
notwendig.
-
Ein
Nachteil des Verwendens von Sequenznummern, die Bytes anstelle von
Rahmen entsprechen ist, dass im Allgemeinen mehr Bits notwendig
sind um die Sequenznummer zu repräsentieren. Dies kann eine leichte
Erhöhung
der Anzahl von unabhängig
nummerierten Wiederübertragungsrahmen
verursachen, die notwendig sind zum Befördern der Daten von einem verlorenen Rahmen.
In einem exemplarischen Ausführungsbeispiel
der Erfindung ist dieser Einfluss jedoch minimiert dadurch, dass
manchmal am meisten signifikante und am wenigstens signifikante
Bits von der Sequenznummer weggelassen werden.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Die
Merkmale, Ziele und Vorteile der vorliegenden Erfindung werden aus
der unten angegebenen detaillierten Beschreibung klarer werden,
wenn man diese zusammen mit den Zeichnungen betrachtet, in denen gleiche
Bezugszeichen durchgehend Entsprechendes identifizieren und wobei
die Figuren Folgendes zeigen:
-
1 ist
ein Diagramm vom Sequenznummernraum und seiner Nutzung in mehreren
neuen RLP-Rahmen gemäß einem
Ausführungsbeispiel
der Erfindung.
-
2 ist
ein Diagramm vom Sequenznummernraum und seiner Nutzung in mehreren
RLP-Wiederübertragungsrahmen
gemäß einem
Ausführungsbeispiel
der Erfindung.
-
3 ist
ein Flussdiagramm der Schritte, die zum Senden bzw. Übertragen
eines Datenrahmens gemäß einem
Ausführungsbeispiel
der Erfindung genutzt werden.
-
4 ist
ein Flussdiagramm der Schritte, die genutzt werden zum Extrahieren
von Daten von einem empfangenen Datenrahmen gemäß einem Ausführungsbeispiel
der Erfindung.
-
5 ist
ein Diagramm von einem Datenkommunikationssystem, das gemäß einem
Ausführungsbeispiel
der Erfindung konfiguriert ist.
-
DETAILLIERTE BESCHREIBUNG
DER BEVORZUGTEN AUSFÜHRUNGSBEISPIELE
-
1 zeigt
wie ein Sequenznummernraum in einem Ausführungsbeispiel der Erfindung
genutzt wird. Neue Daten 100, die zu senden bzw. zu ü bertragen
sind, werden in einen Vollraten-RLP-Rahmen 140 platziert. Innerhalb
des RLP-Rahmens 140 sind eine Sequenznummer 150 und
die Daten 100. Neue Daten 102, die zu senden sind,
werden in einen Vollraten-RLP-Rahmen 142 platziert.
Innerhalb des RLP-Rahmens 142 sind eine Sequenznummer 152 und
die Daten 102.
-
Falls
neue Daten 104 weniger Bytes besitzen als das Maximum für einen
Vollraten-RLP-Rahmen, werden sie in einen Nichtvollraten-RLP-Rahmen 144 platziert.
Innerhalb des RLP-Rahmens 144 sind nicht nur eine Sequenznummer 154 und
die Daten 104 sondern auch eine Datenlänge 164. Wie bei RLP2,
erlaubt dieses Ausführungsbeispiel
der Erfindung die Nutzung von niederratigen Rahmen mit einer gegebenen
Kanalkapazität,
z.B. Halbratenrahmen in einem 9600 bps-Kanal, zum Befördern kleinerer
RLP-Rahmen.
-
In
einem exemplarischen Ausführungsbeispiel
der Erfindung entspricht jede Sequenznummer dem ersten Byte von
den Daten in dem RLP-Rahmen. Die innerhalb eines RLP-Rahmens beförderte Sequenznummer
wird die RLP-Sequenznummer
genannt.
-
Die
Daten 100, 102 und 104, die in den drei
RLP-Rahmen 140, 142 und 144 gesendet
werden, residieren innerhalb eines Sequenznummernraums 110.
In einem exemplarischen Ausführungsbeispiel
der Erfindung sind die Sequenznummern Bytesequenznummern, die sequentiell
von niedrigen Werten auf der linken Seite zu hohen Werten auf der
rechten Seite fortschreiten. In dem aktuellen Ausführungsbeispiel,
da Sequenznummern entweder genutzt werden oder ausgelassen bzw. übersprungen
werden, nehmen sie monoton zu. Wenn ein vorher bestimmter maximaler
Sequenznummernwert erreicht wird, beginnen die Sequenznummern wiederum
bei Null.
-
Wenn
die Datenbytes 102 in den RLP-Rahmen 142 platziert
werden, werden ihnen jeweils sequentielle Bytenummern von einem
Block von Sequenznummern 126 zugewiesen. In einem exemplarischen
Ausführungsbeispiel
ist das erste Byte vom Block 126 eine vorher bestimmte
numerische Dis tanz 134a von dem ersten Byte von einem Block 122 der
genutzt wird zum Senden des vorhergehenden RLP-Rahmens. Diese vorher bestimmte
Distanz wird eine Seitengröße genannt,
und Sequenznummern innerhalb der vorherbestimmten Distanz werden
zusammen eine Seite genannt. Der Sequenznummernblock, der zum Senden
von Daten genutzt wird, startet immer am Beginn einer Seite. Zum
Beispiel startet der Sequenznummernblock 122 am Beginn
von Seite 134a, der Sequenznummernblock 126 startet
am Beginn von Seite 134b, der Sequenznummernblock 130 startet
am Beginn von Seite 134c. Ein Seiteneffekt davon, dass
immer ein neuer Rahmen am Beginn einer Seite startet, ist dass ein
Block von Sequenznummern an dem Ende einer Seite, z.B. 124, 128 und 132 nicht
zum Senden von Datenbytes zugewiesen sein könnte.
-
In
einem exemplarischen Ausführungsbeispiel
der Erfindung wird eine gekürzte
RLP-Sequenznummer genutzt, die gleich der Bytesequenznummer von
dem ersten Datenbyte in dem RLP-Rahmen, dividiert durch die Seitengröße, ist.
Die Anzahl von Bits, die erforderlich sind zum Repräsentieren
einer gekürzten RLP-Sequenznummer
ist kleiner als die Bits, die erforderlich sind zum Repräsentieren
der tatsächlichen
Bytesequenznummer.
-
In
einem anderen Ausführungsbeispiel
der Erfindung werden auch die höchstwertigsten
Bits von der Bytesequenznummer weggelassen, wenn eine derartige
Weglassung keine Mehrdeutigkeit verursacht darüber, welche Daten in dem Datenteil
des RLP-Rahmens enthalten sind. Zum Beispiel, falls eine Bytesequenznummer
von 20 Bits genutzt wird, aber weniger als 216 Bytes
ausstehend sind (noch nicht explizit oder implizit bestätigt worden
sind), müssen
die höchstwertigsten
4 Bits von der Bytesequenznummer nicht in der RLP-Sequenznummer
gesendet werden. Diese 4 höchstwertigsten
Bits können
sicher von der RLP-Sequenznummer weggelassen werden, ohne eine Mehrdeutigkeit
bei den Sequenznummern der Bytes, die in dem Rahmen enthalten sind,
zu verursachen.
-
Obwohl
das Kürzen
der Sequenznummer hierin als Weglassen einer Anzahl von höchstwertigsten
Bits von der Sequenznummer dargestellt ist, ist einem Fachmann klar,
dass das gleiche Ergebnis erlangt werden kann durch Durchführen einer
Modulofunktion auf der Sequenznummer ohne von der aktuellen Erfindung
abzuweichen.
-
Falls
jedoch mehr als 216 Bytes ausstehend sind,
könnte
es sein, dass mehr als eines der ausstehenden Datenbytes die gleiche
gekürzte
RLP-Sequenznummer
besitzt. In einem exemplarischen Ausführungsbeispiel der Erfindung
werden Wiederübertragungsrahmen,
die derartige Datenbytes befördern,
die gesamte 20-bitige Sequenznummer enthalten.
-
Wenn
ein RLP-Rahmen negativ bestätigt
(NAK) wird, und wieder übertragen
bzw. neu gesendet werden muss, werden die Daten in RLP-Wiederübertragungsrahmen
eingefügt,
und wieder übertragen
bzw. erneut gesendet. Falls die Kanalkapazität während der Wiederübertragung
ausreichend ist, dann hat der Wiederübertragungsrahmen die gleiche
Größe wie der
originale, verlorene RLP-Rahmen. In dem Fall in dem der Wiederübertragungsrahmen
und der originale RLP-Rahmen die gleiche Größe besitzen, kann der Wiederübertragungsrahmen
die gleiche gekürzte
RLP-Sequenznummer
wie der originale benutzen, und zwar so lange wie dies keine Sequenznummern-Mehrdeutigkeit
verursacht.
-
Falls
ein originaler Senderahmen mehr Daten befördert als in einen einzelnen
Wiederübertragungsrahmen
passen, was möglich
ist wenn die Kanalkapazität
abnimmt, dann werden die Daten von dem originalen Senderahmen auf
mehrere kleinere Wiederübertragungsrahmen
aufgeteilt. Jeder Wiederübertragungsrahmen enthält seine
eigene RLP-Sequenznummer, die auf eine der vorher erörterten
Arten gekürzt
sein kann oder auch nicht. Falls ein Wiederübertragungsrahmen während der Übertragung
verloren geht, kann jener individuelle Wiederübertragungsrahmen negativ bestätigt bzw.
NAK werden, und danach wieder übertragen
werden. In dem seltenen Fall, dass die Kanalkapazität abnimmt
bevor ein wieder übertragener
Rahmen NAK wird, können
die Daten in jenem Wiederübertragungsrahmen
weiter aufgeteilt werden auf noch kleinere unabhängige Wiederübertragungsrahmen
und zwar vor ihrer zweiten Wiederübertragung.
-
Diese
Prozedur unterscheidet sich von RLP2, bei dem Wiederübertragungssegmente,
die einem einzelnen verlorenen Rahmen entsprechen, alle die gleiche
RLP-Sequenznummer tragen. Um die Daten in einem einzelnen verlorenen
Wiederübertragungssegment
wiederzugewinnen bzw. aufzudecken, müssen alle Wiederübertragungssegmente,
die die Sequenznummer des verlorenen Rahmens tragen, erneut wieder
gesendet werden.
-
2 zeigt
die Nutzung vom Bytesequenznummernraum und von RLP-Sequenznummern, wenn
die Daten in einem verlorenen RLP-Rahmen in mehreren kleineren RLP-Wiederübertragungsrahmen
wieder übertragen
werden müssen,
und zwar gemäß einem
exemplarischen Ausführungsbeispiel
der Erfindung. Die Unterteilung von Wiederübertragungsbytes kann notwendig
werden, wenn die Kanalkapazität
zwischen der Zeit der Übertragung
des originalen RLP-Rahmens und der Wiederübertragung von seinen Daten
reduziert wird.
-
In
dem gezeigten Beispiel wird der Sequenznummernraum 228,
der genutzt wird zum Repräsentieren der
Bytes in dem originalen verlorenen RLP-Rahmen, aufgeteilt auf mehrere RLP-Wiederübertragungsrahmen 230.
Der Sequenznummernraum 228 wird in kleinere Teile 220 aufgeteilt,
wobei jedes eine Größe besitzt,
die kleiner oder gleich der Kapazität von Vollratenrahmen auf dem
aktuellen Sendekanal ist. Die Daten 200, die jedem von
den kleineren Sequenznummernraumteilen 220 entsprechen,
werden in einen RLP-Wiederübertragungsrahmen 230 platziert.
-
Jedes
RLP-Wiederübertragungssegment
besitzt eine RLP-Sequenznummer 240,
die dem ersten Byte von seinem entsprechenden Sequenznummernraum 220 entspricht.
Zum Beispiel besitzt die Sequenznummer 240a einen
Wert, der repräsentativ
ist für
den ersten Wert in dem Sequenz nummernraum 220a .
Die RLP-Sequenznummer 240 in jedem Wiederübertragungsrahmen 230 kann
optional gekürzt
werden auf die gleiche Art und Weise, wie für die RLP-Sequenznummern erörtert, so
lang dies keine Sequenznummermehrdeutigkeit verursacht.
-
Jeder
RLP-Wiederübertragungsrahmen
kann optional eine Datenmenge 250 besitzen. Die Datenlänge 250,
die durch jeden RLP-Wiederübertragungsrahmen
befördert
wird, zeigt die Anzahl von Datenbytes 200 innerhalb des
Rahmens an. Zum Beispiel ist die Datenlänge 250a gleich
der Anzahl von Datenbytes 200a in dem
Wiederübertragungsrahmen 230a . Falls die Länge von Daten in anderen Teilen
des Wiederübertragungsrahmens 230 angezeigt
ist, z.B. in einem Typfeld das nicht in der Figur gezeigt ist, kann
das Datenlängenfeld 250 weggelassen
werden.
-
Die
Bildung von RLP-Wiederübertragungsrahmen
geht weiter bis der letzte Teil der Daten 200 in einem RLP-Wiederübertragungsrahmen 230 platziert
ist. Der letzte in einer Folge von RLP-Wiederübertragungsrahmen enthält oft weniger
als die maximale Anzahl von Datenbytes 200n und
enthält
somit typischerweise eine Datenlänge 250.
-
In
dem bevorzugten Ausführungsbeispiel
der Erfindung werden die RLP-Sequenznummern für die häufigsten Sende- bzw. Übertragungsrahmen
gekürzt,
und zwar durch Weglassen der am wenigsten signifikanten Bits und
der am meisten signifikanten Bits. In einem exemplarischen Ausführungsbeispiel
der Erfindung besitzt die Bytesequenznummer 20 Bits, eine Seitengröße von 64
Bytes wird genutzt und die Anzahl von ausstehenden RLP-Senderahmen bzw.
-Übertragungsrahmen überschreitet
selten 256. Tabelle 1 Beispielhafte RLP-Rahmenköpfe
RLP Rahmenkopffelder | |
Type
Bits | Bit0-Bit1 | Bit2 | Bit3 | Bit4-Bit7 | Byte
1 | Byte
2 | Byte
3 | Rahmentyp-Beschreibung |
11 | 8 Bit seq#
bzw. Sequenznummer | Daten | 1.
Neu: 8-Bit RLP Sequenznummer |
10 | 8 Bit seq#
bzw. Sequenznummer | Daten | 2.
Wiederübertragung: 8-Bit RLP-Sequenznummer |
01 | 8 Bit seq#
bzw. Sequenznummer | Länge | Daten | 3.
Neu: 8-Bit RLP Sequenznummer, 8-Bit Länge |
00 | 11 | 14 Bit Seq#
bzw. Sequenznummer | Daten | 4.
14-Bit RLP Sequenznummer, keine Länge |
00 | 10 | 14 Bit Seq#
bzw. Sequenznummer | Länge | Daten | 5.
14-Bit RLP Sequenznummer, 8-Bit Länge |
00 | 01 | 14 Bit Seq#
bzw. Sequenznummer | Länge | 6.
14-Bit RLP Sequenznummer, 16-Bit Länge |
00 | 00 | 1 | 1 | 20 Bit Seq#
bzw. Sequenznummer | Länge | 7.
Wiederübertragung: Bewegen
zur nächsten
Seitengrenze |
00 | 00 | 1 | 0 | 20 Bit Seq#
bzw. Sequenznummer | Länge | 8.
Wiederübertragung: nicht
zur nächsten
Seitengrenze bewegen |
00 | 00 | 0 | Weitere
Formate für
NAKs, Status, SYNC, ACK, SYNC/ACK, Idle bzw. Leerlauf, Rahmenende. | 9.
Erweiterte Steuerung/Sequenz |
-
Tabelle
1 zeigt die Felder von RLP-Rahmenköpfen, die gemäß dem bevorzugten
Ausführungsbeispiel der
Erfindung genutzt werden. Die Inhalte der Rahmenköpfe können platziert
werden am Anfang, am Ende, oder deterministisch über den RLP-Rahmen verteilt
werden. In dem bevorzugten Ausführungsbeispiel
der Erfindung erscheint der RLP-Rahmenkopf an dem Beginn von jedem
RLP-Rahmen. Die Verteilung von den Inhalten des Kopfes über den
Rahmen hinweg kann wünschenswert
sein, falls eine nicht gleichmäßige Wahrscheinlichkeit
von Bitfehlern über
den RLP-Rahmen hinweg existiert, wenn dieser durch den Empfänger empfangen
wird.
-
Eine
variierende Anzahl von Typbits wird genutzt zum Kennzeichnen des
RLP-Rahmentyps. Gemeinsam bilden diese Typbits ein Typfeld mit variabler
Bitlänge,
welches den Typ des RLP-Rahmens, der übertragen bzw. gesendet wird,
sowie auch das Format des Rests von dem RLP-Kopf, anzeigt. In Tabelle
1 enthält die „Rahmentypbeschreibungen"-Spalte eine Beschreibung
von dem Rahmentyp, der jedem Typfeldwert entspricht. Die Rahmentypbeschreibungen
in der „Rahmentypbeschreibungen"-Spalte werden identifiziert
mit Rahmentypnummern zum Zwecke der Diskussion. Alle Spalten außer die „Rahmentypbeschreibungen"-Spalte zeigen Felder,
die tatsächlich
in dem RLP-Kopf enthalten sind.
-
Das
Typfeld wird von der RLP-Sequenznummer gefolgt. Wenn es ohne Verursachen
einer Sequenznummern-Mehrdeutigkeit möglich ist, werden gekürzte RLP-Sequenznummern
von 8 Bits genutzt. Andernfalls sind gekürzte RLP-Sequenznummern von
14 Bits oder volle 20-Bit RLP-Sequenznummern in dem RLP-Kopf enthalten.
-
Gekürzte RLP-Sequenznummern
von 8 Bits werden von der 20-bitigen Bytesequenznummer erzeugt, die
dem ersten Datenbyte in dem Rahmen entspricht. Eine 20-Bit Bytesequenznummer
wird in eine 8-bitige gekürzte
RLP-Sequenznummer
konvertiert durch Weglassen der am wenigsten signifikanten 6 Bits
und der am meisten signifikanten 6 Bits der Bytesequenznummer. Die Nutzung
einer 8-bitigen RLP-Sequenznummer ist speziell vorteilhaft, da 8-bitige Nummern einfacher
durch die meisten modernen Mikroprozessoren und in moderner Software
manipuliert werden können.
In dem bevorzugten Ausführungsbeispiel
der Erfindung ist das verbesserte RLP-Protokoll ausgelegt zum Maximieren
der Anzahl von RLP-Rahmen, die mit 8-bitigen RLP-Sequenznummern gesendet werden.
-
Eine
20-bitige Bytesequenznummer wird in eine 14-bitige gekürzte RLP-Sequenznummer
konvertiert durch Weglassen der am wenigsten signifikanten 6 Bits
von der Bytesequenznummer. Wenn eine 20-bitige RLP-Sequenznummer in
einem RLP-Rahmen zu senden ist, wird die 20-bitige Bytesequenznummer
einfach in die RLP-Sequenznummer kopiert.
-
In
dem bevorzugten Ausführungsbeispiel
der Erfindung nutzen die meisten Rahmen die Daten befördern, die
für das
erste Mal zu senden sind, eine 8-bitige RLP-Sequenznummer. Diese
Rahmentypen bzw. -arten werden in der „Rahmentypbeschreibungen"-Spalte als Typ 1
und 3 identifiziert. Zusätzlich
können RLP-Wiederübertragungsrahmen
auch 8-bitige RLP-Sequenznummern
nutzen, wie durch Typ 2 angezeigt ist.
-
Die
Rahmentypen 4, 5 und 6 enthalten 14-bitige RLP-Sequenznummern. Diese Rahmen können optional
genutzt werden, um die Sequenznummern-Mehrdeutigkeit zu vermeiden,
und zwar in dem Fall dass ein ausstehender Rahmen die gleiche 8-bitige
RLP-Sequenznummer besitzt, wie sie andernfalls für den nächsten zu sendenden Rahmen
genutzt würde.
Diese Rahmen können
auch optional beim Wiederübertragen
von Daten von negativ bestätigten
(NAK) Rahmen genutzt werden.
-
Die
Rahmentypen 7 und 8 enthalten volle 20-Bit RLP-Sequenznummern. Diese Rahmen werden
genutzt, wenn die Kanalkapazität
abnimmt bevor NAK-Daten in weniger Wiederübertragungsrahmen wieder übertragen
werden können.
-
Hier
ist ein Beispiel der Nutzung von Wiederübertragungsrahmentypen, wenn
die Kanalkapazität
vor der Wiederübertragung
reduziert wird. 750 Datenbytes, die die Bytesequenznummern 1000
bis 1749 tragen, werden während
der Übertragung
eines einzelnen RLP-Senderahmens bzw. -Übertragungsrahmens auf einem
Kanal mit 307 kbps verloren. Zu der Zeit zu der der Empfänger einen
NAK-Rahmen zurück
zum Sender sendet, ist die Kanalkapazität auf 9,6 kbps reduziert worden.
Die 750 Bytes von verlorenen Daten müssen jetzt über einen Kanal mit 9,6 kbps
wieder übertragen
werden. Unter Verwendung von 2 zum Darstellen
dieses Szenarios, ist der Sequenznummernraum 228 in dem
Bereich der Sequenznummern von 1000 bis 1749. Bei einer einfachen
Erweiterung von RLP2 trägt
bzw. befördert
jeder Wiederübertragungsrahmen,
der einen Rahmentyp-8-Kopf auf einem Kanal mit 9,6 kbps nutzt, 15
Bytes an Daten. Nutzt man dies als ein Beispiel, würden die
750 Bytes an wieder zu übertragenden
Daten unter bzw. auf 50 RLP-Wiederübertragungsrahmen
verteilt werden. In 2 würde der RLP-Wiederübertragungsrahmen 230a einen Rahmentyp-8-Kopf mit einer 20-bitigen Sequenznummer
von 1000 und einer Länge
von 15 besitzen. Mit n = 50 würde
der Rahmen 230n-1 einen Rahmentyp-8-Kopf
mit einer 20-bitigen Sequenznummer von 1720 und einer Länge von
15 besitzen. Die Nutzung von Rahmentyp 8 zeigt dem Empfänger an,
dass es mehr Datenbytes gibt, die den Sequenznummernraum zwischen
dem Wiederübertragungsrahmen
und der nächsten
Seitengröße zugewiesen
sind. Der Rahmen 230n würde einen
Rahmentyp-7-Kopf mit einer 20-bitigen Sequenznummer von 1735 und
einer Länge
von 15 besitzen. Die Nutzung von Rahmentyp 7 in dem letzten Wiederübertragungsrahmen
zeigt dem Empfänger an,
dass es keine Daten gibt, die den Sequenznummernraum zwischen dem
letzten Byte in dem Rahmen und der nächsten Seitengrenze zugewiesen
sind. Jedwelche Rahmen vom Typ 7 oder 8 können individuell NAK bzw. negativ
bestätigt
werden, und erneut wieder übertragen
werden. Bei einer einfachen Verbesserung des vorhergehenden Beispiels
besitzt eine Variation vom Rahmentyp 8 einen Kopf mit keinem Längenbyte,
was es dem Rahmen erlaubt, 16 Bytes an Daten zu befördern.
-
Der
Rahmentyp 9 befördert
die Steuerung/Sequenzrahmen, die genutzt werden zur Synchronisation in
einem RLP-Protokoll. Die Nutzung von Steuerung/Sequenzrahmen ist
im Detail in dem vorgenannten RLP2 beschrieben.
-
Bei
Rahmenköpfen,
die kein Längenfeld
besitzen, wird die Datenlänge
interpretiert als sei sie die maximale Anzahl von Bytes, die in
den Rest von dem gesendeten Rahmen passen können. Auf diese Art und Weise
ist das hierin beschriebene erweiterte bzw. verbesserte RLP-Protokoll
einfach erweiterbar zur Nutzung bei Kanälen, die eine größere Kapazität besitzen
als in dem vorgenannten RLP2 oder cdma2000 spezifiziert ist. Bei
vielen antizipierten Erweiterungen wäre keine Modifikation des verbesserten
RLP-Protokolls nötig,
um die neuen Kanalkapazitäten
aufzunehmen.
-
Der
Empfänger,
nach dem Empfangen von RLP-Rahmen in den hierin beschriebenen Formaten,
nutzt gekürzte
Sequenznummern um die originalen Bytesequenznummern zu reproduzieren,
die auf die in jedem RLP-Rahmen enthaltenen Bytes anzuwenden sind.
Wenn ein Rahmen empfangen wird dessen RLP-Sequenznummer den Verlust
von einem oder mehreren vorhergehenden Rahmen anzeigt, sendet der
Empfänger
ein NAK an den Sender. Der NAK-Rahmen kann optional die Anzahl von
Bits spezifizieren, die in der RLP-Sequenznummer des entsprechenden RLP-Wiederübertragungsrahmen
zu nutzen ist.
-
Obwohl
das bevorzugte Ausführungsbeispiel
der Erfindung die Nutzung von 20-bitigen Bytesequenznummern und
8-, 14- und 20-bitigen RLP-Sequenznummern
spezifiziert, können
viele andere Auswahlen von Sequenznummerngrößen durchgeführt werden,
ohne von der aktuellen Erfindung abzuweichen. Die Nutzung von RLP-Sequenznummern,
die Unzweifelhaftes weglassen von am meisten signifikanten oder
am wenigsten signifikanten Teilen von dem Bytesequenznummernraum
ermöglichen,
sind die Ziele von verschiedenen Ausführungsbeispielen der aktuellen
Erfindung, wie z.B. die Auswahl von Seitengrößen, die zweier Potenzen sind oder
die Nutzung von 8-bitigen
gekürzten
RLP-Sequenznummern.
-
3 ist
ein Flussdiagramm von den Schritten, die genutzt werden zum Senden
eines Datenrahmens, gemäß einem
Ausführungsbeispiel
der Erfindung. Bei dem Start der Rahmenübertragungsverarbeitung 302, evaluiert
der Sender 304 ob der Sender einen neuen RLP-Senderahmen
bzw. Übertragungsrahmen
oder einen RLP-Wiederübertragungsrahmen
senden muss. Diese Entscheidung basiert darauf, ob NAK-Rahmen, die verlorene
gesendete Daten spezifizieren, vorher empfangen worden sind.
-
Vor
dem Bilden eines Senderahmens wird ein Sendedatenpuffer oder eine
Warteschlange inspiziert zum Bestimmen 306, ob der Sender
neue zu sendende Daten besitzt. Falls es keine Daten gibt, die gesendet werden
müssen,
wird ein Leerlaufrahmen bzw. idle frame gebildet 308 und
gesendet 326. Die Nutzung von SYNC, ACK und IDLE Rahmen
ist im Detail dargestellt in dem vorgenannten RLP2. Bei einem Ausführungsbeispiel
der Erfindung werden Leerlaufrahmen in kleineren Luftschnittstellenrahmen
mit niedrigerer Datenrate platziert, um den Einfluss auf die Luftschnittstellen-Verbindungskapazität von der
Leerlaufrahmenübertragung zu
minimieren. In alternativen Ausführungsbeispielen
der Erfindung können
Leerlaufrahmen überhaupt
nicht übertragen
werden, oder werden weniger häufig
als bei jeder Rahmenperiode gesendet.
-
Falls
bestimmt 306 wird, dass der Sender neue Daten zu senden
hat, evaluiert 308 der Sender dann, ob die Daten in einem
Rahmen sein können,
der eine 8-bitige RLP-Sequenznummer besitzt, ohne eine Sequenznummern-Mehrdeutigkeit zu
verursachen. Falls eine 8-bitige Sequenznummer keine Mehrdeutigkeit
verursacht, dann wird ein RLP-Übertragungsrahmen,
der eine 8-bitige RLP-Sequenznummer besitzt, gebildet 314 und
gesendet 326. Falls die zu sendende Anzahl von Datenbytes
weniger ist als das Maximum für
einen vollratigen Rahmen, wird der gebildete 314 Rahmen
ein Längenfeld
besitzen. Falls die Anzahl von zu sendenden Datenbytes größer ist
als oder gleich ist dem Maximum für einen vollratigen Rahmen,
dann wird die maximale Anzahl von Datenbytes in einen vollratigen
Rahmen 314 eingefügt,
und je ner Rahmen wird gesendet 326. Die RLP-Sequenznummer,
die in neue Übertragungsrahmen
in den Schritten 312 oder 314 eingefügt wird,
wird erzeugt von der Bytesequenznummer, die bei der nächsten nicht
verwendeten Seite beginnt.
-
Falls
der Sender bestimmt 304, dass der Sender einen RLP-Wiederübertragungsrahmen
senden muss, dann ist der nächste
Schritt es zu bestimmen 322, ob eine volle 20-bitige RLP-Sequenznummer
bei dem nächsten
RLP-Wiederübertragungsrahmen
erforderlich ist. Eine volle 20-bitige RLP-Sequenznummer ist erforderlich, falls
die wieder zu übertragenden
Daten in mehr RLP-Rahmen übertragen
werden müssen
als jene die genutzt wurden zum originalen Übertragen der Daten, was möglich ist,
wenn die Kanalkapazität
zwischen der Übertragung
und der Wiederübertragung
verringert wird. Falls der nächste
Rahmen mit einer 20-bitigen RLP-Sequenznummer gesendet werden muss,
dann wird ein RLP-Wiederübertragungsrahmen
gebildet, und mit Daten 324 gefüllt und gesendet 326 mit
einer RLP-Sequenznummer, die dem ersten Byte von Daten in dem RLP-Wiederübertragungsrahmen
entspricht. Falls der Sender bestimmt 322, dass eine 20-bitige
RLP-Sequenznummer
nicht notwendig ist, dann muss der Sender dann wählen 318 zwischen
der Nutzung einer 8-bitigen oder einer 14-bitigen RLP-Sequenznummer für den nächsten wieder übertragenen
RLP-Rahmen. Sobald die Bestimmung der erforderlichen Sequenznummern-Bitgröße vollständig ist 318,
bildet der Sender einen RLP-Übertragungsrahmen
mit einer 8-bitigen RLP-Sequenznummer 320 oder bildet einen
RLP-Übertragungsrahmen
mit einer 14-bitigen RLP-Sequenznummer 316 und sendet den
Rahmen 326. In jedem Fall 316 oder 320 wird
die in den Rahmen eingefügte
RLP-Sequenznummer
von der Bytesequenznummer erzeugt, die dem ersten Byte von den Daten
entspricht, die im Rahmen enthalten sind. Jene Bytesequenznummer
wird die erste Bytesequenznummer von einer Sequenznummernseite sein.
Falls notwendig, um eine Mehrdeutigkeit bezüglich der Datengröße zu vermeiden,
wird der RLP-Kopf von dem wieder übertragenen RLP-Rahmen ein
Längenfeld
enthalten.
-
4 ist
ein Flussdiagramm von den Schritten die genutzt werden zum Extrahieren
von Daten von einem empfangenen Datenrahmen gemäß einem Ausführungsbeispiel
der Erfindung. Nach dem Empfangen eines RLP-Datenrahmens oder eines Leerlaufrahmens,
der eine RLP-Sequenznummer 402 enthält, expandiert der Empfänger die
empfangene RLP-Sequenznummer von dem RLP-Rahmen, wie es notwendig
ist zum Bilden einer Bytesequenznummer und extrahiert jedwelche
Datenbytes von dem Rahmen 404. Der Empfänger bestimmt 406 dann,
von jener Bytesequenznummer ob RLP-Rahmen, die Daten befördern, verloren
worden sind.
-
In
einem exemplarischen Ausführungsbeispiel
der Erfindung wird die Bestimmung von verlorenen Daten durchgeführt durch
Vergleichen der Bytesequenznummer, die durch den zuletzt empfangenen
RLP-Datenrahmen angezeigt wird mit der Bytesequenznummer, die der
Bytesequenznummer von dem letzten vorhergehenden Datenbyte, das
erfolgreich empfangen worden ist, entspricht. Zum Beispiel wird
das letzte Byte von einem empfangenen RLP-Datenrahmen, der nicht
eine Wiederübertragung
ist, als das letzte vorhergehende erfolgreich empfangene Datenbyte
betrachtet. Falls die von einem empfangenen RLP-Datenrahmen, der
nicht eine Wiederübertragung
ist oder von einem empfangenen RLP-Leerlaufrahmen expandierte Bytesequenznummer
unterschiedlich ist, um mehr als eine Seite von der Sequenznummer
von dem zuletzt vorhergehend erfolgreich empfangenen Datenbyte ist,
dann hat der Verlust von einem oder mehreren verlorenen RLP-Datenrahmen stattgefunden.
-
Das
vorher genannte RLP2-Protokoll beschreibt die Nutzung von Timern
bzw. Zeitgebern und Rahmenzählern
beim Bestimmen des Verlusts von wieder übertragenen RLP-Rahmen. Diese
Techniken werden auch in Ausführungsbeispielen
der aktuellen Erfindung genutzt.
-
Nach
dem Bestimmen, dass Daten verloren worden sind 406, bildet
und sendet der Empfänger
einen NAK-Rahmen 408 zum Anfordern der Wiederübertragung
der verlorenen Daten. In einem alternativen Ausführungsbeispiel der Erfindung
kann der Empfänger,
innerhalb des NAK-Rahmens, eine reduzierte Anzahl von Bits spezifizieren,
die in den RLP-Sequenznummern innerhalb der wieder übertragenen
RLP-Rahmen zu nutzen sind, und zwar basierend auf dem Kenntnis des
Empfängers
des Bytesequenznummernraums von erfolgreich empfangenen Bytes.
-
Nach
dem Bestimmen, dass Daten nicht verloren worden sind 406,
bildet und sendet der Empfänger entsprechend
RLP-Leerlauf oder RLP-Datenrahmen.
In alternativen Ausführungsbeispielen
der Erfindung werden Leerlaufrahmen überhaupt nicht übertragen
oder werden weniger häufig
als bei jeder Rahmenperiode gesendet.
-
5 ist
ein Diagramm von einem Datenkommunikationssystem, das gemäß einem
Ausführungsbeispiel
der Erfindung konfiguriert ist. Wie gezeigt, kommuniziert ein Sender 502 mit
einem Empfänger 504 über einen
drahtlosen Kommunikationskanal 506. RLP-Datenrahmen und
Steuerrahmen werden vom Sender 502 zum Empfänger 504 über einen
Kanal 506a gesendet, und RLP-Bestätigungen
oder negative Bestätigungen bzw.
NAKs werden vom Empfänger 504 zum
Sender 502 über
einen Kanal 506b gesendet. Während der Übertragung kann sich die Kapazität des Übertragungskanals 506 ändern, was
manchmal eine Wiederübertragung von
Daten über
einen Kanal mit geringerer Kapazität als jener, der bei der originalen Übertragung
genutzt wurde, erfordert.
-
Zum
Beispiel kann ein großer
Vollraten-RLP-Datenrahmen durch den Sender 502 über den
Kanal 506a gesendet werden, jedoch nicht erfolgreich durch
den Empfänger 504 empfangen
werden. Dann wird die Kapazität
des Kanals 506 reduziert und zwar entweder kurz bevor oder
kurz nachdem der Empfänger 504 einen
NAK-Rahmen für
die verlorenen Daten auf dem Kanal 506b sendet. Der Sender 502 muss
jetzt die Datenbytes von dem originalen verlorenen Vollraten-RLP-Datenrahmen
auf bzw. zwischen mehrere kleinere RLP-Rahmen zur Wiederübertragung über den
Kanal 506b mit reduzierter Kapazität verteilen. Falls der Empfänger 504 bestimmt,
dass ein oder mehrere wieder übertragene
RLP-Rahmen bei der Wiederübertragung über den
Kanal 506a mit reduzierter Kapazität verloren gegangen sind, kann
der Empfänger 504 jene
individuellen verlorenen Wiederübertragungsrahmen über den
Kanal 506b individuell NAK bzw. negativ bestätigen.
-
In
einem exemplarischen Ausführungsbeispiel
der Erfindung beinhaltet der Sender 502 einen Prozessor,
der verbunden ist mit einem Speicher und einer Vorrichtung zum drahtlosen
Senden und Empfangen von Bytes, die durch den Prozessor zu verarbeiten
sind. Der Prozessor ist versehen mit einem Bytestrom, der über die
Sendevorrichtung zu senden bzw. zu übertragen ist, und bildet Übertragungen
gemäß dem verbesserten Funkverbindungsprotokoll
(RLP), das hierin zuvor beschrieben worden ist.
-
In
einem exemplarischen Ausführungsbeispiel
der Erfindung beinhaltet der Empfänger 504 einen Prozessor,
der verbunden ist mit einem Speicher und einer Vorrichtung zum drahtlosen
Senden und Empfangen von Bytes, die durch den Prozessor zu verarbeiten
sind. Der Prozessor ist versehen mit empfangenen Daten, die von
der Empfangsvorrichtung empfangen wurden, und bildet Antwortrahmen
zur Übertragung
gemäß dem verbesserten
Funkverbindungsprotokoll (RLP), das hierin zuvor beschrieben worden
ist.