-
GEBIET DER ERFINDUNG
-
Die
Erfindung betrifft allgemein Paketkommunikationsvorgänge und
insbesondere Header-Kompression in Paketkommunikationsvorgängen.
-
HINTERGRUND DER ERFINDUNG
-
Bedingt
durch den enormen Erfolg des Internet wurde es zu einer herausfordernden
Aufgabe, das Internetprotokoll IP (siehe z.B. Jon Postel, Internet
Protocol, DARPA RFC 791, September 1981) über alle Arten von Verbindungen
zu verwenden. Weil jedoch die IP-Protokolle für leitungsgebundene Verbindungen
mit hohen Bandbreitenfähigkeiten
entworfen worden sind und weil Paket-Header der IP-Protokolle eher groß sind,
ist es nicht immer eine einfache Aufgabe, IP-Protokolle mit Schmalbandverbindungen,
beispielsweise Zellularverbindungen, zu verwenden. Wenn wir das
Szenario betrachten, bei dem die IP-Protokolle für Echtzeitdaten, beispielsweise
gewöhnliche
Sprache, verwendet werden, werden das Benutzerdatagramm-Protokoll bzw. User Datagram
Protocol UDP (siehe z.B. Jon Postel, User Datagram Protocol, DARPA
RFC768, August 1980) und das Echtzeittransport-Protokoll bzw. Real-Time Transport
Protocol RTP (siehe z.B. Henning Schulzrinne, Stephen L. Casner,
Ron Frederic, und Van Jacobson, RTP: A Transport Protocol for Real-Time
Applications bzw. ein Transportprotokoll für Echtzeitanwendungen, IETF
RFC 1989, IETF Audio/Video Transport Working Group, Januar 1996)
oberhalb von IP angewendet. Gemeinsam erfordern sie einen Gesamtumfang
von 40 Paketkopf- bzw. Header-Oktetten (IP 20, UDP 8 und RTP 12
Oktetten). Wenn wir diese Header-Erfordernisse
mit gewöhnlicher Sprachbenutzung
kombinieren, die Rahmengrößen von
weniger als 15–20
Oktetten haben kann, wird der Header-Anteil in nachteiliger Weise
mehr als 70% des Pakets repräsentieren.
-
Der
Ausdruck Header-Kompression (HC) umfasst die Kunst des transparenten
Minimierens der erforderlichen Bandbreite für in Headern enthaltene Information
auf einer Pro-Hüpfer-
bzw. Pro-Hop-Basis über
Ende-Ende-Verbindungen bzw. Punkt-zu-Punkt-Verbindungen. Header-Kompression
nutzt die Tatsache aus, dass manche Felder in den Headern sich innerhalb
eines Ablaufs nicht ändern
und dass die meisten Header-Änderungen
gering sind und/oder vorhersagbar. Konventionelle Header-Kompressionsschemata
nutzen jene Tatsachen aus und senden statische Information nur anfänglich,
während
sich ändernde
Felder entweder als unkomprimierte Werte gesendet werden (z.B. für vollständig zufällige Information)
oder als Differenzen (oder Deltas) von Paket zu Paket, wobei letzteres
typischerweise als Differenz-Codierung (oder Delta-Codierung) bezeichnet
wird.
-
Konventionelle
Header-Kompressions-/Dekompressionsschemata werden häufig unter
Verwendung von Zustandsmaschinen realisiert und die herausfordernde
Aufgabe liegt darin, die Konsistenz von Kompressor- und Dekompressor-Zuständen (oder
Kontexten) zueinander zu wahren.
-
Im
Allgemeinen gibt es zwei unterschiedliche konventionelle Techniken,
den Dekompressorkontext aktuell zu halten. Die erste Technik verwendet
periodische Auffrischungen, wobei absolute Header-Daten gesendet
werden. Ein Vorteil dieser Lösung
ist, dass ihre Performance nicht durch die Umlaufzeit (Round-Trip-Time
bzw. RTT) der Verbindung beeinträchtigt
wird bedingt durch die Tatsache, dass keine Nachrichten von dem
Dekompressor zum Kompressor gesendet werden. Dies bedeutet, dass
sie auch über
Simplex-Verbindungen arbeitet. Andererseits gibt es eine Anzahl
von Nachteilen beim periodischen Auffrischen. Beispielsweise wird
der durchschnittliche Header-Überhang
bedingt durch die hohe Anzahl von großen Auffrischungs-Headern,
von denen die meisten unnötig
sind, hoch. Andererseits wird, wenn die Header-Auffrischungsrate
zu niedrig ist, die Anzahl an verlorenen Paketen hoch sein, wenn
Fehler auf der Verbindung üblich
sind.
-
Die
andere übliche
Art, den Kontext aktuell zu halten, ist es, den Kompressor nur Auffrischungsinformation
(d.h., Absolut-Header-Daten) senden zu lassen, wenn sie durch den
Dekompressor angefordert wird. Dies erfordert eine Duplexverbindung,
aber reduziert den durchschnittlichen Header-Überhang, weil keine unnötigen Aktualisierungen
vorgenommen werden. Unter der Voraussetzung, dass die Umlaufzeit
gering ist, reduziert diese Lösung
auch die Anzahl von bedingt durch inkonsistente Kontextzustände nach
einem Verbindungsfehler verlorenen Paketen. Bedingt durch die Tatsache,
dass einige Header-Felder sich von Paket zu Paket (auf einer Paket-zu-Paket-Basis)
in Echtzeitverkehr ändern
(d.h., Echtzeitsprache), wird diese Lösung für Echtzeitanwendungen bevorzugt.
Die offensichtlichen Nachteile sind die Abhängigkeit von dem Rückkanal
der Duplexverbindung, die Empfindlichkeit gegenüber verlorenen Paketen auf
der Verbindung und die hohe Anzahl an aufeinanderfolgenden verlorenen
Paketen, die in dem Fall eines ungültigen Kontexts (und einer zugeordneten
Auffrischungsanforderung) auftreten wird, wenn die Umlaufzeit hoch
ist.
-
Für alle Header-Kompressionsschemata
beschreiben zwei Größen ihre
Performance. Die Kompressionseffizienz beschreibt, wie sehr die
Header komprimiert sind. Diese kann durch die durchschnittliche
oder maximale Header-Größe, eine
Kombination von beiden, oder auf andere Weise ausgedrückt werden.
Die Robustheit beschreibt, wie gut das Schema den Verlust der Verbindung
handhabt. Wird der Verlust eines Pakets zu einer Inkonsistenz des Header-Kontexts
führen,
was zu einer großen
Zahl von nachfolgenden verlorenen Paketen führt? Demnach suchen Header-Kompressionsschemata
nach einer Ausgewogenheit zwischen Kompressionseffizienz und Robustheit.
Mehr Robustheit erfordert mehr Header-Überhang, während mehr Effizienz in weniger
Robustheit resultiert. Effiziente Schemata haben daher typischerweise
einige Schwächen
in ihrer Robustheit, was bedeutet, dass Kontextaktualisierungen
auf Anfrage erforderlich sind.
-
Derzeit
gibt es eine Anzahl unterschiedlicher konventioneller Header-Kompressionsschemata. Tatsächlich sind
es nicht wirklich unterschiedliche Schemata, aber unterschiedliche
Entwicklungszustände
desselben. Die frühesten
Vorschläge
(siehe z.B. Van Jacobson, Compressing TCP/IP Headers for Low-Speed Serial Links,
IETF RDC 1144, IETF Network Working Group, Februar 1990) handhabten nur
die Kompression von TCP-Strömen (siehe
z.B. Jon Postel, Transmission Control Protocol, DARPA RFC 761, Januar
1980), während
Ideen entwickelt worden sind, Kompression von UDP- und auch RTP-Headern möglich zu
machen (siehe z.B. Mikael Degermark, Björn Nordgren und Stephen Pink,
IP Header Compression, IETF RFC 2507, IETF Network Working Group,
Februar 1999, und Steven Casner und Van Jacobson, Compressing IP/UDP/RTP
Headers for Low-Speed Serial Links, IETF RFC 2508, IETF Network
Working Group, Februar 1999.
-
Es
gibt auch neue Vorschläge,
wie ROCCO-Schema (Lars-Erik Jonsson, Mikael Degermark, Hans Hannu,
Krister Svanbro, Robust Checksum-based Header Compression (ROCCO), Internet
Draft (work in progress), Oktober 1999), die derzeit entwickelt
werden für
verbesserte Robustheit. Bis jetzt ist den Kontextaktualisierungsprozeduren nur
geringe Aufmerksamkeit geschenkt worden. Die verwendeten Verfahren
sind gewöhnlich
sehr einfach und unkompliziert gewesen. Einer der Gründe hierfür ist wahrscheinlich,
dass diese Prozeduren im Allgemeinen keiner Standardisierung unterzogen
werden. Auch sind Kontextaktualisierungen und Anfragen nur als Rückfalllösung angesehen
worden. Wenn jedoch Header-Kompression über fehlerträchtige Verbindungen
mit langen Umlaufzeiten verwendet wird und für Daten mit Echtzeitanforderungen,
würden
komplizierte Kontextaktualisierungsprozeduren signifikante Verbesserungen
bei der Performance erzielen.
-
Im
Hinblick auf das Vorangehende ist es wünschenswert, einen nicht validierten
Dekompressorkontext so schnell wie möglich mit einer minimalen Zunahme
an Header-Überhang
zu aktualisieren. Dies kann aufgeteilt werden in fünf Teile:
(1) Wann beginnen, Aktualisierungsanfrageen zu senden; (2) wie sicherzustellen,
dass Aktualisierungsanfrageen zu dem Kompressor geliefert werden;
(3) was in die Aktualisierungsanfrage einzuschließen; (4)
wie auf von der Kompressorseite empfangene Aktualisierungsanfrageen
zu reagieren; (5) wie sicherzustellen, dass Kontextaktualisierungen
zu dem Dekompressor gesendet werden; und (6) wie einen korrekten
Kontext zu verifizieren.
-
Gemäß einem
Aspekt der vorliegenden Erfindung wird ein verfahren des Aufrechterhaltens
von Konsistenz zwischen Header-Kompressionskontexten, die jeweils
einer Paketsendestation bzw. einer Paketempfangsstation zugeordnet
sind, während
eines Paketstroms von der Paketsendestation zu der Paketempfangsstation
bereitzustellen, das umfasst: Bestimmen, ob ein vorbestimmter Umfang
an Zeit ohne Empfangen eines Pakets in dem Paketstrom bei der Paketempfangsstation
verstrichen ist; und Senden einer Kontextaktualisierungs-Anfrage von der Paketempfangsstation
zu der Paketsendestation, wenn der bestimmte Umfang an Zeit ohne
Empfangen eines Pakets bei der Paketempfangsstation verstrichen
ist.
-
Gemäß einem
anderen Aspekt der vorliegenden Erfindung wird eine Vorrichtung
bereitgestellt zum Aufrechterhalten von Konsistenz zwischen Header-Kompressionskontexten,
die jeweils einer Paketsendestation und einer Paketempfangsstation
zugeordnet sind, während
eines Paketstroms von der Paketsendestation zu der Paketempfangsstation,
umfassend: Einen Timer bzw. Zeitgeber zum Bestimmen, ob ein vorbestimmter
Umfang an Zeit verstrichen ist ohne das Empfangen eines Pakets in
dem Paketstrom bei der Paketempfangsstation; und einen Kontextaktualisierungs-Anfragegenerator,
der mit dem Timer gekoppelt ist zum Senden einer Kontextaktualisierungs-Anfrage
von der Paketempfangsstation zu der Paketsendestation, wenn der
vorbestimmte Umfang an Zeit verstrichen ist ohne Empfangen eines
Pakets bei der Paketempfangsstation.
-
Die
Erfindung sorgt für
relativ schnelle und zuverlässige
Kontextaktualisierungen mit relativ geringem Überhang durch: Senden vorgreifender
Kontextaktualisierungs-Anfragen bevor eine fehlende Validierung
des Dekompressorkontexts erfasst wird; Senden redundanter Kontextaktualisierungs-Anfragen;
und Senden redundanter Kontextaktualisierungen. Sowohl Kontextaktualisierungs-Anfragen
als auch Aktualisierungen zugeordneter Sendeparameter können in
geeigneter Weise gesteuert werden zum Verbessern ihrer Chance auf
Auslieferung, und unnötige
Aktualisierungsanfragen können
identifiziert und auf der Header-Kompressionsseite ignoriert werden.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Es
zeigt:
-
1 in
anschaulicher Weise ein beispielhaftes Paketkommunikationssystem,
in dem die vorliegende Erfindung implementiert werden;
-
2 in
anschaulicher Weise zweckdienliche Abschnitte beispielhafter Ausführungsformen
der Paketempfangsstation der 1;
-
3 in
beispielhafter Weise Betriebsbabläufe, die durch die Paketempfangsstation
der 2 ausgeführt
werden können;
-
3A einen
alternativen Betriebsablauf, der durch die Paketempfangsstation
der 2 ausgeführt
werden kann;
-
4 in
anschaulicher Weise zweckdienliche Abschnitte einer anderen beispielhaften
Ausführungsform
der Paketempfangsstation der 1;
-
5 beispielhafte
Betriebsabläufe,
die durch die Paketempfangsstation der 4 ausgeführt werden
können;
-
6 in
anschaulicher Weise zweckdienliche Abschnitte einer beispielhaften
Ausführungsform der
Paketempfangsstation der 1;
-
7 beispielhafte
Betriebsabläufe,
die von der Paketsendestation der 6 ausgeführt werden können;
-
8 in
anschaulicher Weise zweckdienliche Abschnitte beispielhafte Ausführungsformen
der Paketsendestation der 1 und der
Paketempfangsstation der 1;
-
9 beispielhafte
Betriebsabläufe,
die durch die Ausführungsformen
der 8 ausgeführt werden
können;
-
10 in
anschaulicher Weise zweckdienliche Abschnitte einer anderen beispielhaften
Ausführungsform
der Paketsendestation der 1; und
-
11 beispielhafte
Betriebsabläufe,
die durch die Paketsendestation der 10 ausgeführt werden
können.
-
DETAILLIERTE BESCHREIBUNG
-
1 zeigt
in anschaulicher Weise ein beispielhaftes Paketkommunikationssystem,
das die vorliegende Erfindung implementieren kann. Eine Paketsendestation 11 sendet
Datenpakete über
einen Paketkommunikationskanal 12 zu einer Paketempfangsstation 14.
Die Paketsendestation 11 schließt einen Header-Kompressor
(HC) 15 zum Bereitstelen von Header-Kompression ein und die Paketempfangsstation 14 schließt einen
Header-Dekompressor (HD) 16 ein zum Bereitstellen von der Dekompression.
Die Paketempfangsstation 14 kann selektiv eine Kontextaktualisierungs-Anfrage
(CUR) über
den Kanal 12 zu der Paketsendestation 11 senden.
Die Paketsendestation 11 kann auf die Kontextaktualisierungs-Anfrage
durch Senden einer Kontextaktualisierung (CU) über den Kanal 12 zu
der Paketempfangsstation 14 reagieren.
-
In
dem Beispiel der 1 schließt der Kanal 12 eine
Schmalbandverbindung 13 ein, beispielsweise eine Funkverbindung.
In einem solchen Beispiel kann die Paketsendestation 11 eine
Funksendestation sein, beispielsweise eine feste oder mobile Station,
die in einem Zellulartelekommunikationsnetz betrieben wird. In ähnlicher
Weise kann, wenn die Schmalbandverbindung 13 eine Funkverbindung
ist, die Paketempfangsstation 14 beispielsweise eine ortsfeste
oder mobile Funkempfangsstation sein, die in einem Zellulartelekommunikationsnetz
betrieben wird.
-
Obwohl
die oben beschriebene Benutzung von Kontextaktualisierungs-Anfragen
und entsprechenden Kontextaktualisierungen allgemein im Stand der
Technik bekannt ist, kann die Weise, in der Kontextaktualisierungen
angefragt und dann bereitgestellt werden, signifikant die Kompressionseffizienz
eines gegebenen Header-Kompressionsschemas
beeinträchtigen.
Gemäß der vorliegenden
Erfindung und wie unten detailliert beschrieben, werden Kontextaktualisierungen
auf solche Weise angefragt und bereitgestellt, dass Unzulänglichkeiten
in der Robustheit des Header-Kompressionsschemas zumindest teilweise
verborgen werden.
-
2 zeigt
in anschaulicher Weise angemessene Abschnitte beispielhafter Ausführungsformen
der Paketempfangsstation 14 der 1. Die Ausführungsformen
der 2 können
beispielsweise die Kontextaktualisierungsprozedur beschleunigen
während
eines langen Bursts verlorener Pakete auf einem Paketkommunikationskanal
mit großer Umlaufzeit.
In der Ausführungsform
der 2 ist ein Timer 23 vorgesehen zum Angeben
der verstrichenen Zeit, seitdem das letzte Paket in einem gegebenen
Paketstrom empfangen worden ist. Bedingt durch die Tatsache, dass
das normale Paketintervall (d.h., die normale Zeit zwischen dem
Empfang aufeinanderfolgender Pakete in dem Paketstrom) gewöhnlich bekannt
ist, kann es, wenn ein anderes Paket nicht innerhalb dieses Zeitintervalls
empfangen wird, ein Anzeichen für
einen Paketverlust sein und eine bevorstehende fehlende Validierung
des Header-Kompressionskontextes
der Paketempfangsstation.
-
In 2 empfängt ein
Paketeingangsabschnitt 21 kommende Pakete von dem Paketkommunikationskanal
und kann die kommenden Pakete in irgendeiner gewünschten konventionellen Weise
verarbeiten einschließlich
dem Bereitstellen von Header-Dekompression. Gemäß der vorliegenden Erfindung
ist der Paketeingangsabschnitt 21 mit dem Timer 23 gekoppelt,
um dem Timer jedes Mal zu signalisieren, wenn ein Paket von dem
Kanal empfangen worden ist. Ein Paketempfangensignal 22 veranlasst den
Timer 23, den Paketintervallwert zu laden und das Timing
bzw. die Zeitüberwachung
zu beginnen. Wenn die Paketintervallzeit verstreicht, bevor ein
anderes Paket bei dem Paketeingangsabschnitt empfangen wird (und
bei 22 dem Timer 23 signalisiert wird), stellt
der Timer 23 ein Zeitablaufsignal für den Kontextaktualisierungs-Anfragegenerator 25 bereit.
-
Der
Kontextaktualisierungs-Anfragegenerator 25 reagiert auf
das Zeitablaufsignal durch Erzeugen einer geeigneten Kontextaktualisierungs-Anfrage
und stellt die Kontextaktualisierungs-Anfrage einem Paketausgangsabschnitt 27 bereit.
Diese Anfrage wird basierend auf der Möglichkeit einer fehlenden Validierung
von Kontext erstellt, obwohl eine solche fehlende Validierung noch
nicht tatsächlich
festgestellt worden ist. Der Paketausgangsabschnitt 27 kann
gehende Pakete in irgendeiner gewünschten konventionellen Weise
verarbeiten einschließlich dem
Erzeugen eines geeigneten Pakets, das die erzeugte Kontextaktualisierungs-Anfrage tragen wird. Der
Paketausgangsabschnitt 27 gibt gehende Pakete einschließlich jener,
die Kontextaktualisierungs-Anfragen enthalten, zu dem Paketkommunikationskanal
aus. In einigen Ausführungsformen
kann die bei 25 erzeugte Kontextaktualisierungs-Anfrage eine
Identifizierungsanfrage einschließen, dass die Kontextaktualisierungs-Anfrage
früh erzeugt
worden ist unter der Annahme einer erwarteten fehlenden Dekompressorkontextvalidierung
(z.B. im Hinblick auf ein Intervall, das länger als erwartet war, zwischen
dem Empfang aufeinanderfolgender Pakete in dem Paketstrom).
-
Wie
bei 26 in 2 gezeigt, kann der Kontextaktualisierungs-Anfragegenerator 25 auch
ausgelöst
werden, um eine CUR zu erzeugen ansprechend auf irgendeine oder
mehrere andere Bedingungen, beispielsweise eine erfasste fehlende
Dekompressor-Kontextvalidierung.
-
3 zeigt
in anschaulicher Weise beispielhafte Betriebsabläufe, die von der Paketempfangsstation
der 2 ausgeführt
werden können.
Nachdem ein Paket von einem gegebenen Paketstrom bei 31 empfangen
worden ist, wird der Timer bei 33 gestartet. Der Timer
arbeitet bis entweder ein Zeitablauf bei 35 auftritt, oder
bei 39 das nächste
Paket empfangen wird (und optional als eine frühe Anfrage identifiziert wird).
Wenn ein Zeitablauf bei 35 auftritt, bevor das nächste Paket
bei 39 empfangen wird, dann wird eine Kontextaktualisierungs-Anfrage
bei 37 gesendet (und optional als eine frühe Anfrage
identifiziert). Andererseits, wenn das nächste Paket bei 39 empfangen
wird vor dem Auftreten eines Zeitablaufs bei 35, dann startet
der Timer wieder bei 33. In einigen Ausführungsformen
kann der Timer bei 33 neu gestartet werden nach dem Senden
einer Kontextaktualisierungs-Anfrage bei 37, wie durch
die unterbrochene Linie in 3 angedeutet.
Solche Ausführungsformen
sehen die Möglichkeit
des Sendens einer Reihe redundanter Kontextaktualisierungs-Anfragen vor, wenn
der Timer mehr als einmal abläuft,
bevor das nächste
Paket empfangen wird.
-
In
einigen Ausführungsformen
kann Information von niedrigeren Schichten dem Kontextaktualisierungs-Anfragegenerator 25 bereitgestellt
werden, um das Unterscheiden zwischen einem langen Paketverlust
und Inaktivität
im Paketstrom zu unterstützen.
Beispielsweise würde
ein Prüfsummenfehler
bei 29 in 2 angeben, dass ein Zeitablauf
des Timers 23 bedeutet, dass ein langer Paketverlust aufgetreten
ist und demnach eine Kontextaktualisierungs-Anfrage benötigt wird.
Jedoch würde
das Fehlen eines Prüfsummenfehlers
bei 29 angeben, dass der Zeitablauf durch Inaktivität im Paketstrom
bedingt ist, so dass keine Kontextaktualisierungs-Anfrage benötigt würde. Der
Betriebsablauf solcher Ausführungsformen
wird auch in 3A erläutert, wenn bei 3 berücksichtigt.
-
4 zeigt
in anschaulicher Weise angemessene Abschnitte einer anderen beispielhaften Ausführungsform
der Paketempfangsstation der 1. In 4 stellt
der Paketeingangsabschnitt 21 einem Header-Dekompressor 41 die
Header der kommenden Pakete bereit. Der Header-Dekompressor 41 kann
konventionelle Dekompressionstechniken verwenden zum Dekomprimieren
der Header. Der Header-Dekompressor 41 stellt Steuersignale 42 und 43 für den Kontextaktualisierungs-Anfragegenerator 44 bereit.
Insbesondere gibt das Signal 42 an, dass der Header-Dekompressor
bestimmt hat, dass eine Kontextaktualisierungs-Anfrage benötigt wird, beispielsweise ansprechend
auf die fehlende Kontextvalidierung in einem oder mehreren Header-Feldern.
Das Signal 43 wird durch den Header-Dekompressor 41 erzeugt, wenn
eine Kontextaktualisierung empfangen worden ist.
-
Ein
Timer 45 ist mit dem Kontextaktualisierungs-Anfragegenerator 44 gekoppelt
und empfängt von
diesem ein CUR-Gesendet-Signal, das angibt, dass eine benötigte Kontextaktualisierungs-Anfrage gesendet
worden ist. Ansprechend auf das CUR-Gesendet-Signal lädt der Timer 45 einen
Wert Twait und beginnt mit der Zeiterfassung
basierend auf diesem Wert. Wenn die Zeit Twait abläuft, gibt
der Timer 45 ein Zeitüberschreitungssignal
an einen CUR-Wiederholeingang
des Kontextaktualisierungs-Anfragegenerators 44. Mit dieser
Anordnung erzeugt der Kontextaktualisierungs-Anfragegenerator 44 eine Kontextaktualisierungs-Anfrage
ansprechend auf das Signal 42 und kann eine Abfolge zusätzlicher
redundanter Kontextaktualisierungs-Anfragen erzeugen, die zeitlich durch
die Zeit Twait voneinander getrennt sind,
welche Abfolge fortgesetzt wird, bis eine Kontextaktualisierung
empfangen wird. Die Abfolge der durch den Kontextaktualisierungs-Anfragegenerator 44 ausgegebenen
Kontextaktualisierungs-Anfragen kann durch den Paketausgangsabschnitt 27 im
Allgemeinen in derselben Weise verarbeitet werden wie oben unter
Bezugnahme auf 2 beschrieben.
-
5 zeigt
beispielhafte Betriebsabläufe, die
durch die Paketempfangsstation der 4 ausgeführt werden
können.
Wenn bei 51 bestimmt wird, dass eine Kontextaktualisierungs-Anfrage benötigt wird,
wird die Kontextaktualisierungs-Anfrage
bei 53 gesendet. Auf das Senden der Kontextaktualisierungs-Anfrage
bei 53 wird der Timer bei 55 gestartet. Daraufhin
wird bestimmt, ob eine Zeitüberschreitung bei 57 auftritt,
bevor die angefragte Kontextaktualisierung bei 59 empfangen
wird. Ist dies der Fall, dann wird eine weitere Kontextaktualisierungs-Anfrage
bei 53 gesendet und die Schritte bei 55 bis 59 werden wiederholt.
Andererseits, wenn die angefragte Kontextaktualisierung bei 59 empfangen
wird, bevor eine Zeitüberschreitung
bei 57 auftritt, dann wird bei 51 auf ein Angeben
einer weiteren erforderlichen Kontextaktualisierungs-Anfrage gewartet.
-
Die
oben in Bezug auf 4 und 5 beschriebenen
Bedingungen zum Auslösen
einer Kontextaktualisierungs-Anfrage sind weitere Beispiele der
oben erwähnten
und bei 26 in 2 dargelegten "anderen Bedingungen". Auch kann in einigen
Ausführungsformen
das "CUR-Erforderlich"-Signal bei 42 in 4 das
Zeitüberschreitungssignal
von einem Paketintervall-Timer sein, wie bei 23 in 2 gezeigt und
oben beschrieben.
-
Durch
periodisches Wiederholen der Kontextaktualisierungs-Anfragen in 4 und 5 werden
die Chancen erfolgreicher Aktualisierung des Kontextes erhöht. Der
Umfang an Zeit Twait, um den vor dem Wiederholen
der Kontextaktualisierungs-Anfrage
gewartet wird, kann auf Umlaufzeit-Schätzungen basieren. Hierdurch
können
unnötige
Anfragen vermieden werden, was Bandbreite im Paketkanal einspart.
-
Der
Wert von Twait kann aus Parametern wie Umlaufzeit,
Kanalkapazität
und gewünschte
Dienstequalität
bestimmt werden. Wenn Twait gleich der Umlaufzeit
festgelegt wird, dann werden unnötige
Kontextaktualisierungs-Anfragen vermieden, aber wenn der Kanal gestört ist,
wird die Dienstequalität
abnehmen. Wenn es einen großen
Umfang an verfügbarer Bandbreite
gibt, könnte
es besser sein, Twait auf einen Betrag festzulegen,
der kleiner als die Umlaufzeit ist. Die Zeit Twait sollte
vorzugsweise irgendein Bruchteil der geschätzten Umlaufzeit sein, beispielsweise
50% der Umlaufzeit. Der Wert von Twait kann
im Hinblick auf die zuvor erwähnten
Parameter und Betrachtungen ausgewählt werden. Zudem oder alternativ
kann der Wert von Twait empirisch durch
Experimentieren im Hinblick auf die gewünschte Dienstequalität und die
erwarteten Kanalbedingungen (z.B. Umlaufzeit und Kapazität) bestimmt
werden.
-
Die
zum Bestimmen von Twait verwendete Umlaufzeit-Schätzung kann
in irgendeiner gewünschten
Weise, beispielsweise folgendermaßen bestimmt werden. Wenn die
Paketempfangsstation ein eine Kontextaktualisierungs-Anfrage enthaltendes
Paket sendet, kann der Paketausgangsabschnitt 27 die momentane
Zeit aufzeichnen und speichern. Wenn das entsprechende Kontextaktualisierungspaket
von der Paketempfangsstation empfangen wird, kann der Paketeingangsabschnitt 21 die
momentane Zeit aufzeichnen und speichern. Dann kann ein Umlaufzeit-Schätzer 49,
der an den Paketeingangsabschnitt 21 und den Paketausgangsabschnitt 27 gekoppelt
ist, die Umlaufzeit-Schätzung
als die Differenz zwischen der Zeit, zu der das Kontextaktualisierungs-Anfragepaket
gesendet worden ist und der Zeit, zu der das entsprechende Kontextaktualisierungspaket
empfangen worden ist, berechnen. Eine Vielzahl von Umlaufzeit-Schätzungen
können
auf diese Weise berechnet werden und Anfragen gesendet werden und
entsprechende Aktualisierungen empfangen, und die Umlaufzeit-Schätzungen
können
zur statistischen Verarbeitung verwendet werden, beispielsweise
zum Berechnen des Durchschnittswerts der Umlaufzeit-Schätzungen.
Dieser Durchschnittswert kann dann durch den Umlaufzeit-Schätzer verwendet
werden, um Twait auszuwählen.
-
6 illustriert
geeignete Abschnitte einer beispielhaften Ausführungsform der Paketsendestation
der 1. In der Ausführungsform
der Paketsendestation der 6 leitet
ein Paketeingangsabschnitt 60 empfangene Kontextaktualisierungs-Anfragen zu einem
Kontextaktualisierungs-Anfragenfilter 61 weiter (das beispielsweise
in dem HC 15 der 1 vorgesehen
ist). Das Kontextaktualisierungs-Anfragenfilter 61 bestimmt,
ob oder nicht eine empfangene Kontextaktualisierungs-Anfrage eine
Kontextaktualisierung auslösen
sollte. Wenn das Filter 61 bestimmt, dass eine Kontextaktualisierung
ansprechend auf die empfangene Kontextaktualisierungs-Anfrage erzeugt werden sollte,
wird eine Angabe eines solchen Bestimmens bei 62 einem
Kontextaktualisierungsgenerator 63 signalisiert (beispielsweise
in dem HC 15 der 1 vorgesehen).
Die erzeugte Kontextaktualisierung (CU) wird durch den Generator 63 einem
Paketausgangsabschnitt 66 bereitgestellt, der die Kontextaktualisierung
in ein gehendes Paket einfügt.
-
Das
Kontextaktualisierungs-Anfragefilter 61 kann basierend
auf der Kenntnis der Umlaufzeit und der Zeit, zu der das letzte
Paket zu der Station gesendet worden ist, die die Kontextaktualisierungs-Anfrage
erzeugt hat, bestimmen, ob oder nicht eine Kontextaktualisierung
zu senden ist. Wie bei 64 in 6 gezeigt,
signalisiert der Paketausgangsabschnitt 66 dem Kontextaktualisierungs-Anfragefilter 61,
wann jedes gehende Paket ausgesendet worden ist, und das Kontextaktualisierungs-Anfragefilter 61 empfängt auch
eine Eingabeinformation, die in Bezug auf die Umlaufzeit indikativ
ist. Diese Umlaufzeit-Information kann von der Paketempfangsstation
bereitgestellt werden, die Umlaufzeit in der beispielhaften oben
beschriebenen Weise abschätzen
kann.
-
Das
Kontextaktualisierungs-Anfragefilter 61 der 6 kann
beispielsweise zum Herausfiltern und Ignorieren unnötiger früher Kontextaktualisierungs-Anfragen
verwendet werden, die von der Paketempfangsstation der 2 gesendet
worden sind. Beispielsweise könnte
die Paketempfangsstation der 2 eine unnötige frühe Kontextaktualisierungs-Anfrage
in einer Situation absenden, in der die Paketsendestation einfach
kein Paket für
eine Zeitdauer sendet bzw. gesendet hat, die länger ist als das dem Timer 23 der 2 zugeführte Paketintervall. Die
Kontextaktualisierungs-Anfragefilteranfrage 61 kann
einen Timer 68 ähnlich
dem der 2 einschließen zum Überwachen der verstrichenen
Zeit zwischen den Paketen, die in einem gegebenen Paketstrom gesendet
worden sind. Der Timer 68 ist mit dem Paketsendesignal
bei 64 gekoppelt. Wie oben beschrieben kann ein eine frühe Kontextaktualisierungs-Anfrage
enthaltendes Paket, wie es in 2 erzeugt
worden ist, auch Information enthalten, die explizit die Kontextaktualisierungs-Anfrage
als eine frühe
Anfrage identifiziert. Wenn daher eine solche Kontextaktualisierungs-Anfrage
von dem Filter 61 der 6 empfangen
wird, wird sie leicht identifiziert und kann ignoriert werden, wenn
das Filter 61 aus seinem Timer 68 bestimmt, dass
die empfangene früher
Kontextaktualisierungs-Anfrage
in unnötiger
Weise erzeugt worden ist (z.B. bedingt durch eine lange Ruhedauer
zwischen Paketübertragungen).
-
Andererseits
kann das Kontextaktualisierungs-Anfragefilter, wenn eine durch die
Paketempfangsstation der 2 erzeugte Kontextaktualisierungs-Anfrage
nicht explizit als frühe
Anfrage identifiziert wird, trotzdem imstande sein, eine solche
frühe Kontextaktualisierungs-Anfrage
zu identifizieren. Insbesondere, wenn der Timer im Filter 61 angibt,
dass mehr als eine Umlaufzeit verstrichen ist, seit das letzte Paket
im Paketstrom gesendet worden ist, kann das Filter 61 erwägen, die
Kontextaktualisierungs-Anfrage als eine unnötige frühe Anfrage zu betrachten, die
ignoriert werden kann.
-
Das
Kontextaktualisierungs-Anfragefilter 61 der 6 kann
auch die Kontextaktualisierungs-Anfrage ausfiltern und ignorieren,
wenn bestimmt wird, dass die Kontextaktualisierungs-Anfrage eine
redundante Anfrage ist, die bereits mit einer Kontextaktualisierung
beantwortet ist. Beispiele solcher redundanter Anfragen werden oben
beschrieben und andere Beispiele werden nachstehend beschrieben.
-
7 zeigt
beispielhafte Betriebsabläufe, die
von der Paketempfangsstation der 6 ausgeführt werden
können.
Wenn eine Kontextaktualisierungs-Anfrage bei 71 empfangen
wird, wird daraufhin bei 73 bestimmt, ob eine entsprechende
Kontextaktualisierung bereits gesendet worden ist. Ist dies der Fall,
dann ist die empfangene Kontextaktualisierungs-Anfrage bloß eine redundante Anfrage und wird
bei 79 ignoriert. Wenn bei 73 bestimmt wird, dass
eine Kontextaktualisierung in Entsprechung zu der empfangenen Anfrage
nicht gesendet worden ist, wird dann bei 75 bestimmt, ob
oder nicht die Kontextaktualisierungs-Anfrage eine durch Inaktivität der Paketsendestation
ausgelöste
frühe Anfrage
ist. Wenn bei 75 bestimmt werden kann, dass die Kontextaktualisierungs-Anfrage
durch Inaktivität
bei der Paketsendestation ausgelöst
worden ist, dann wird die Kontextaktualisierungs-Anfrage bei 79 ignoriert und
die nächste
Kontextaktualisierungs-Anfrage wird daraufhin bei 71 abgewartet.
Andernfalls wird die entsprechende Kontextaktualisierung bei 77 gesendet und
die nächste
Kontextaktualisierungs-Anfrage wird daraufhin bei 71 abgewartet.
-
Wie
durch unterbrochene Linien in 7 gezeigt,
kann der Entscheidungsblock 73 in Ausführungsformen, die keine redundanten
Kontextaktualisierungs-Anfragen verwenden, weggelassen werden, und
der Entscheidungsblock bei 75 kann Ausführungsformen weggelassen werden,
die keine frühen
Kontextaktualisierungs-Anfragen verwenden.
-
Wenn
Kontext-Steuerinformation wie zum Beispiel Kontextaktualisierungs-Anfragen
und ihre entsprechenden Kontextaktualisierungen über verlustreiche Verbindungen
gesendet werden, ist es wünschenswert,
die Sendefehlerwahrscheinlichkeit, die mit solchen Übertragungen
einhergeht, zu reduzieren, verglichen mit anderen weniger kritischen Übertragungen.
Diese Übertragungsfehlerwahrscheinlichkeit
kann unter Verwendung einer Vielzahl von Techniken in Übereinstimmung
mit der vorliegenden Erfindung reduziert werden.
-
Als
ein Beispiel kann eine Kontextaktualisierungs-Anfrage und die entsprechende
Kontextaktualisierung in N aufeinanderfolgenden Paketen wiederholt
werden oder mit einer geeigneten Frequenz F. Alternativ kann das
Wiederholen in N aufeinanderfolgenden Paketen selbst wiederholt
werden mit einer Frequenz F. Die Werte von N und/oder F können so ausgewählt werden,
dass die Wahrscheinlichkeit des Ausfalls der Auslieferung der Anfrage
oder der Aktualisierung auf einen geeigneten Level unterhalb dem von
weniger kritischen Typen von Kommunikationen auf der Verbindung
reduziert werden kann. Geeignete Werte von N oder F können beispielsweise
empirisch durch Experimentierung unter erwarteten Kanalbedingungen
bestimmt werden.
-
Wenn
eine gegebene Kontextaktualisierungs-Anfrage oder Kontextaktualisierung
in N aufeinanderfolgenden Paketen wiederholt wird, kann die Information
in jenen Paketen in einigen Ausführungsformen
derart kombiniert sein, dass die N Pakete kombiniert werden können zum
Bilden einer gültigen Anfrage
oder Aktualisierung. Dies kann beispielsweise mit Weich- bzw. Soft-Kombinieren
der physikalischen Schicht erreicht werden. Insbesondere können einige
Kontextaktualisierungen in einer Reihe, von denen jede eine feste
Anzahl von Informationsbits über
einen korrekten Kontext enthält,
gesendet werden. Wenn einige solcher Kontextaktualisierungen bei
der Paketempfangsstation empfangen werden, kann die korrekte Kontextaktualisierung
bestimmt werden durch Weichkombinieren der Schicht 1. Wenn jedes
Bit demoduliert wird, kann die Wahrscheinlichkeit für Bitfehler
eines einzelnen Bits verringert werden durch Berücksichtigen des demodulierten
Wertes des entsprechenden Bits in der vorangehenden Kontextaktualisierung.
Daher kann ein Weich-Kombinieren ausgeführt werden durch Vergleichen
von derzeitigen und vorangehenden Kontextaktualisierungen zum Sicherstellen
einer in korrekter Weise empfangenen Kontextaktualisierung. Als
ein anderes Beispiel könnte
dies bei einem Logikpegel mit einfacher Mehrheitsentscheidung vorgenommen
werden. Wenn beispielsweise zwei oder drei Aktualisierungen angeben,
dass der Wert einer Header-Datei (beispielsweise des Dienst-Typs
oder des TOS-Felds) 10 ist, und die dritte Kontextaktualisierung
sagt, dass der Wert 20 ist, dann sollte der Wert von 10 gewählt werden.
Diese Prozedur der Mehrheitsentscheidung kann bei dem Bit-Level
angewendet werden, dem Feld-Level oder auf dem Level des gesamten
Headers. Diese Level-Auswahl bezieht nur die gewünschte Größe des Satzes von Bits ein,
auf dem die Mehrheitsentscheidung zu basieren hat.
-
Wenn
die Pakete in einem Drahtlossystem oder irgendeinem System mit variabler
Sendeausgangsleistung gesendet werden, kann ebenfalls eine solche
variable Sendeausgangsleistung verwendet werden. Die Ausgangsleistung
der Kontextaktualisierungs-Anfragen oder Kontextaktualisierungen
enthaltenden Pakete können
um einen Faktor Kp angehoben werden (relativ in Bezug auf weniger
kritische Typen von Kommunikationsübertragungen), so dass die
Wahrscheinlichkeit des Ausfalls der Lieferwirkung der Kontextaktualisierungs-Anfrage oder der
Kontextaktualisierung auf einem gewünschten Level reduziert wird
unterhalb dem des weniger kritischen Typs von Kommunikationen auf
der Verbindung. Der Faktor Kp kann beispielsweise empirisch durch
Experimentieren bestimmt werden.
-
Wenn
die Pakete in einem System übertragen
werden, das Kanalcodierung verwendet, kann die Kanalcodierrate R
(R = Nutzinformationsbitrate/kanaldecodierte Datenbitrate) verringert
werden (in Bezug auf weniger kritische Typen von Kommunikationsübertragungen),
bis die Wahrscheinlichkeit des Verfehlens des Lieferns der Kontextaktualisierungs-Anfrage
oder der Kontextaktualisierung auf einem geeigneten Level reduziert
ist unterhalb dem von weniger kritischen Typen von Kommunikationen auf
der Verbindung. Die gewünschte
Codierrate R kann beispielsweise empirisch durch Experimentieren
bestimmt werden.
-
In
einigen Ausführungsformen
können
die zuvor erwähnten
Parameter N, F, Kp und R auch adaptiv in Bezug auf die Kanalqualität ausgestaltet
sein. Kanalqualität
kann in konventioneller Art gemessen werden wie zum Beispiel anhand
von Bitfehlerrate, Paketverlustrate etc. Die Parameter N, F, Kp
und R können
kontinuierlich angepasst werden, so dass die Wahrscheinlichkeit
eines Verfehlens der Lieferung von Kontextaktualisierungs-Anfragen
und Kontextaktualisierungen auf einem gewünschten Level gehalten wird.
Die Adaptivität
der zuvor erwähnten
Parameter an die Kanalqualitätsmaße kann
beispielsweise unter Verwendung einer Nachschautabelle implementiert
werden, in dem die Parameter N, F, Kp und R gegenüber konventionell
verfügbaren
Kanalqualitätsmaßen wie
Bitfehlerrate, Paketverlustrate etc. indiziert sein können. Die
Information in solchen Nachschautabellen kann beispielsweise empirisch
durch Experimentieren bestimmt werden.
-
8 zeigt
geeignete Abschnitte beispielhafter Ausführungsformen von Paketübertragungsstation
und Paketempfangsstation der 1. In 8 wird
ein Übertragungsparametergenerator 81 ausgelöst, wenn
eine Übertragung
von Kontext-Steuerinformation von eine Kontextaktualisierungs-Anfrage
oder eine Kontextaktualisierung veranlasst wird, am Eingang eines
Kontext-Steuerinformationsgenerators 82 wie zum Beispiel
eines Kontext-Anfragegenerators oder eines Kontextaktualisierungsgenerators.
Ansprechend auf das Veranlassen der Kontextaktualisierungs-Anfrage
(oder der Kontextaktualisierung) erzeugt der Übertragungsparametergenerator
einen oder mehrere der zuvor erwähnten
Parameter N, F, Kp und R. Wie in 8 gezeigt,
werden die Parameter N und F dem Kontext-Steuerinformationsgenerator 82 bereitgestellt,
während
der Parameter Kp einem Leistungsverstärker bereitgestellt wird und der
Parameter R einem Kanalcodierer bereitgestellt wird. 8 gibt
auch in einer unterbrochenen Linie die beispielhafte Alternative
des Bereitstellens von Kanalqualitätsinformation als eine Eingangsgröße des Übertragungsparametergenerators
an, das Erzeugen des bzw. der Übertragungsparameter
als eine Funktion der Kanalqualitätsinformation und das Variieren
des oder der Übertragungsparameter
ansprechend auf Variationen in der Kanalqualität.
-
9 zeigt
in beispielhafter Weise Betriebsabläufe, die durch die Ausführungsformen
der 8 ausgeführt
werden können.
Nachdem bei 91 bestimmt worden ist, dass eine Kontextaktualisierungs-Anfrage
(oder Kontextaktualisierung) veranlasst worden ist, werden ein oder
mehrere Übertragungsparameter
erhalten und bei 92 angewendet. Wie oben erwähnt, können in
verschiedenen Ausführungsformen
irgendwelche der in 8 und 9 dargestellten Übertragungsparameter
alleine oder in irgendeiner gewünschten
Kommunikation mit irgendwelchen anderen Parametern verwendet werden.
Es sollte auch bemerkt werden, dass irgendeine (oder irgendeine
gewünschte
Kombination) von den Übertragungsparametern
der 8 und 9 im Zusammenhang mit der in 2–5 erzeugten
Kontextaktualisierungs-Anfragen und/oder den in 6 und 7 erzeugten
Kontextaktualisierungen verwendet werden können.
-
Geeignete
Abschnitte einer weiteren beispielhaften Paketübertragungsstation werden in 10 dargestellt.
In einigen Fällen
sendet der Header-Kompressor HC zudem in der Paketempfangsstation
vorhandenen Header -Dekompressor Header-Information, die relativ zu typischer
komprimierter Header-Information
erweitert ist. Als ein Beispiel solcher erweiterter Header-Information
(EHI) müssen vor
dem Beginn von Header-Kompressionsoperationen vollständige Header
typischerweise zu der Paketempfangsstation gesendet werden, bis
der Header-Dekompressor HD bestätigt,
dass sein Kontext in geeigneter Weise initialisiert ist zum Beginnen
des Empfangs komprimierter Header. Als andere Beispiele von erweiterter
Header-Information werden, obwohl Änderungen in Header-Feldwerten
wie Stempelfeldwerten und IPv4-ID-Feldwerte (IP-Version 4-Identifikationsfeldwerten)
normalerweise bei dem Header-Dekompressor ohne das Empfangen irgendwelcher
Delta-Werte hierzu vorhersagbar sind, wenn eines dieser Felder in
einem ungewöhnlich
großem Umfang
geändert
wird, dann Delta-Werte typischerweise für jene Felder gesendet, bis
eine Bestätigung (ACK)
von dem Header-Dekompressor empfangen worden ist.
-
Die
oben beschriebene Benutzung von erweiterter Header-Information EHI (z.B.
vollständige Header,
bevor die Kompression begonnen wird, oder Delta-Werte für Zeitstempelfelder
und IPv4-ID-Felder) werden in Übereinstimmung
mit der Erfindung, wie in 10 gezeigt,
bereitgestellt. Beispielsweise kann der zuvor erwähnte Umfang
an Zeit Twait durch den Header-Kompressor
HC im Allgemeinen in derselben oben in Bezug auf 4 beschriebenen
Weise verwendet werden zum periodischen Wiederholen der EHI, bis
eine Bestätigung
ACK von dem Header-Dekompressor empfangen wird.
-
11 zeigt
beispielhafte Betriebsabläufe, die
durch die Paketsendestation der 10 ausgeführt werden
können. 11 mit 5 vergleichend kann
gesehen werden, dass die Betriebsabläufe bei 111, 113, 115, 117 und 119 im
Allgemeinen analog zu den jeweiligen Betriebsabläufen bei 51, 53, 55, 57 bzw. 59 in 5 sind
mit der Ausnahme, dass EHI anstelle einer CUR gesendet wird, und
ACK anstelle von CU empfangen wird.
-
Es
sollte auch bemerkt werden, dass irgendeiner (oder irgendeine gewünschte Kombination)
von den Sendeparametern der 8 und 9 im
Zusammenhang mit der in 10–11 erzeugten
erweiterten Header-Information EHI verwendet werden kann. Es sollte
auch klar sein, dass jene Sendeparameter auf EHI anwendbar sind
unabhängig
davon, ob EHI periodisch basierend auf Twait wiederholt
wird oder nicht.
-
Für Fachleute
wird es offenbar sein, dass die erfindungsgemäßen Ausführungsformen, die in 1–11 dargelegt
sind, in leichter Weise beispielsweise durch in geeigneter Weise
modifizierte Software, Hardware oder beidem davon in Paketdatenverarbeitungsabschnitten
von konventionellen Paketübertragungs-
und Empfangsstationen implementiert werden können.
-
Obwohl
beispielhafte Ausführungsformen der
vorliegenden Erfindung oben detailliert beschrieben worden sind,
beschränken
diese nicht den Schutzbereich der Erfindung, der in einer Vielfalt
von Ausführungsformen
in die Praxis umgesetzt werden kann.