-
Gebiet der
Erfindung
-
Die
vorliegende Erfindung bezieht sich auf eine Einrichtung und ein
Verfahren zum Senden von Datenpaketen, z.B. über eine Verknüpfung (link),
die eine Verbindung zwischen einem Computer und einem Datenaustauschnetz
herstellt, wie etwa dem so genannten Internet.
-
Hintergrund
der Erfindung
-
Mit
dem Fortschritt in der Datenverarbeitung und Kommunikationstechnologie über die
vergangenen Jahre wurde die Herstellung von Datenaustauschnetzen
ein festes Inventar in vielen Aspekten der modernen Welt, z.B. in
der wissenschaftlichen und militärischen
Gemeinschaft, aber auch bei dem stark ansteigenden Wachstum in dem
geschäftlichen und
privaten Bereich. Das beste Beispiel davon ist das stetig ansteigende
Angebot und die Nachfrage nach Diensten in dem weltweiten Kommunikationsnetz,
das gewöhnlich
als das Internet bezeichnet wird. Im Prinzip verweist der Begriff "Internet" einfach auf ein
Netz, das aus anderen Netzen besteht, sodass das weltweite "Internet" nur ein Beispiel
ist, wenn auch ein sehr bekanntes.
-
Das
gewöhnlich
verwendete Datenaustauschprinzip für Netze ist das von Paketaustausch. Dies
bedeutet, dass die zu sendenden Daten in Einheiten heruntergebrochen
werden. Regeln zum Senden und Empfangen derartiger Einheiten, ebenso
wie Regeln für
die Struktur der Einheiten selbst werden durch sogenannte Protokolle
bestimmt. Protokolle sind Mengen von Regeln, die die Kommunikation zwischen
einem sendenden Ende und einem empfangenden Ende erlauben, da die
Regeln spezifizieren, wie und in welcher Form zu sendende Daten
vorzubereiten sind, derart, dass das empfangende Ende die Daten
interpretieren und in Übereinstimmung
mit durch das Protokoll definierten Regeln reagieren kann, die durch
beide Partner in der Kommunikation befolgt werden.
-
Ein
wichtiges Konzept zum Erlauben des Austauschs von Daten zwischen
unterschiedlichen Netzen, und dadurch zwischen zahlreichen Arten
von Software und Hardware, ist das von Protokollschichtung. Dies
bedeutet, dass eine Zahl von Protokollen (manchmal auch als eine
Suite bezeichnet) in einer Hierarchie von Schichten organisiert
ist, wobei jede Schicht spezifische Funktionen und Verantwortlichkeiten
hat. Dies wird durch verweist auf ein Beispiel kurz erläutert, das
in 3 bis 5 erläutert wird. Eine detailliertere
Beschreibung dieses Konzepts wird z.B. in "TCP/IP Illustrated, Volume 1, The Protocols" von W. Richard Stevens,
Addison-Wesley, 1994 gegeben.
-
Das Übertragungssteuerprotokoll
(TCP, Transmission Control Protocol) und das Internetprotokoll (IP)
sind Beispiele von Protokollen, gemäß denen Kommunikation über das
Internet behandelt werden kann. Was gewöhnlich als TCP/IP bezeichnet wird,
umfasst jedoch ebenso andere Protokolle. Die sogenannte TCP/IP-Suite
hat vier Schichten, wie in 3 gezeigt
wird. Die Verknüpfungsschicht
behandelt die Eingabe und Ausgabe von Daten in die physischen Kommunikationsmedien,
z.B. ein Kabel oder eine Funkverbindung. Sie ist typischerweise
in dem Einrichtungstreiber in dem Betriebssystem und in der entsprechenden
Netzschnittstellenkarte in dem Computer implementiert. Die Netzschicht
behandelt die Bewegung von Daten um das Netz herum, z.B. Weiterleitung
(Routing). IP ist ein Beispiel eines Netzschichtprotokolls. Die
Transportschicht sieht einen Fluss von Daten für die Anwendungsschicht darüber vor.
Z.B. ist TCP in der Transportschicht. Eine Alternative zu TCP ist
das Benutzerdatagrammprotokoll (UDP, User Datagram Protocol). Die
Anwendungsschicht wird durch das Anwendungsprogramm gebildet, das
Daten sendet oder empfängt,
z.B. ein E-Mail-Programm.
-
Eine
Kommunikation zwischen zwei Punkten hat dann die schematische Form,
die in 4 gezeigt wird. Daten werden zuerst durch die
Schichten nach unten gereicht und in die physische Verbindung auf
der sendenden Seite eingegeben, und dann durch die Schichten auf
der empfangenden Seite nach oben gereicht. Dies wird durch die Pfeile
einer durchgehenden Linie angezeigt. Die Elemente, die die Daten
in einer gegebenen Schicht in Übereinstimmung
mit einem Protokoll behandeln, das für diese Schicht spezifiziert
ist (z.B. TCP in der Transportschicht in dem Beispiel von 4)
werden auch als Partner (Peers) bezeichnet. Mit anderen Worten wird die
Transportschicht in dem Beispiel von 4 durch einen
TCP-Peer behandelt. Es sollte vermerkt werden, dass die physische
Verbindung, die unten in 4 gezeigt wird, erneut aus einer
oder mehr eigenen Protokollschichten bestehen kann, abhängig von dem
Typ der Verbindung. Dies wird im weiteren detaillierter erläutert.
-
5 veranschaulicht
den Mechanismus zum Weitergeben von Daten durch die Schichten. Die
typische Basisstruktur eines Paketes hat zwei Teile, nämlich einen
Header (Kopf) und einen Nutzlastteil. Der Header enthält Informationen über den Typ
von Daten, die in dem Nutzlastteil enthalten sind, und Kommunikationssteuerinformationen
für die
jeweilige Schicht. Wie in 5 gesehen
werden kann, werden in der Anwendungsschicht Benutzerdaten durch
Hinzufügen
eines Headers verarbeitet. Die resultierende Dateneinheit oder Paket
wird zu der Transportschicht weitergegeben, wo z.B. ein TCP-Header
hinzu gefügt
wird. Dieser TCP-Header enthält
Information für
den TCP-Peer auf der empfangenden Seite. Das resultierende Paket
wird manchmal auch als ein TCP-Segment bezeichnet. Dann wird dieses
TCP-Segment zu der Netzschicht weitergegeben, wo in dem Beispiel
von 5 ein IP-Header hinzugefügt wird, der z.B. Weiterleitungsinformation
enthält.
Das resultierende Paket wird auch als ein IP-Datagramm bezeichnet.
Schließlich
wird das IP-Datagramm zu der Verknüpfungsschicht weitergegeben,
wo ein Header, der mit dem Verknüpfungsschichtprotokoll
(LLP, link layer protocol), z.B. dem Punkt-zu-Punkt-Protokoll (PPP),
in Verbindung steht, hinzugefügt
wird. Das resultierende Paket wird häufig ein Rahmen genannt. Der
Rahmen nimmt auch ein Startflag und ein Endflag derart auf, dass
ein Empfänger
erkennen kann, wo ein Rahmen beginnt und wo er endet. Dieser Prozess
zum Einbetten eines Paketes einer höheren Schicht in ein größeres Paket
einer tieferen Schicht wird als Kapselung bezeichnet.
-
Auf
der empfangenden Seite werden die Benutzerdaten durch Schritte von
Entkapselung in der entgegengesetzten Reihenfolge von dem, was in 5 gezeigt
wird, extrahiert. Es sollte vermerkt werden, dass die obige Beschreibung
nur auf ein Beispiel verweist, und Variationen möglich sind. Z.B. fügen einige
Protokolle nicht nur Header hinzu, sondern auch Trailer (Nachspanne).
-
Es
sollte bemerkt werden, dass ein Paket nicht von der Anwendungsschicht
stammen muss, sondern vielmehr eine untere Schicht ein Paket generieren
kann, z.B. zum Senden spezifischer Information in Bezug auf nur
diese Schicht zu dem entsprechenden Peer in dem empfangenden Ende.
Ein Beispiel dessen ist das Senden von Verknüpfungssteuerprotokoll- (LCP,
Link Control Protocol) Paketen vor Senden von Daten einer höheren Schicht,
wobei die LCP-Pakete durch die Verknüpfungsschicht-Peers verwendet
werden, um die (physisch herge stellte) Verknüpfung in Übereinstimmung mit Parametern
zu konfigurieren, die abstimmbar und/oder verhandelbar in der Verknüpfungsschicht sind.
-
Die
Darstellung in 4 ist nur sehr schematisch,
da sie impliziert, dass die vier einzelnen Peers auf jede Seite
jeweils in einem Standort implementiert sind. Dies ist möglich, aber
in Wirklichkeit ist die Situation gewöhnlich komplizierter. 6 zeigt
schematisch ein Beispiel einer Kommunikation zwischen einem IP-Host
1 und einem IP-Host 2. Der obere Teil der Figur repräsentiert
den physischen Kommunikationspfad, und der untere Teil der Figur
zeigt den logischen Kommunikationspfad, der mit den verschiedenen
Protokollen in Verbindung steht, die eingesetzt werden. Das Beispiel
von 6 bezieht sich auf eine Verbindung zu dem Internet über ein
GSM-Netz.
-
IP-Host
1 kann z.B. ein Laptop-Computer sein. Die Anschlussanpassungsfunktion
TAF (terminal adaptation function) kann z.B. durch eine PCMCIA-Schnittstellenkarte
erfüllt
werden, die mit der Mobilstation MS, z.B. einem zellularen Telefon,
verbunden ist. Die Mobilstation MS kommuniziert mit einer Basistransceiverstation
BTS, die wiederum mit einer Basisstationssteuervorrichtung BSC (base
station controller) verbunden ist. Die Verbindung zu einem öffentlichen
vermittelten Telefonnetz PSTN wird durch ein Modem in der Zusammenarbeitsfunktion IWF
(interworking function) der mobilen Vermittlungsstelle MSC (mobile
switching center) bewerkstelligt, die mit der Basistransceiverstation
BTS in Verbindung steht. Es kann vermerkt werden, dass wegen der
Tatsache, dass GSM digital ist, die TAF nicht ein Modem ist. Schließlich sieht
das PSTN die Verbindung zu einem Internetdienstanbieter ISP vor,
der wiederum ein Gateway zu dem Internet bereitstellt. Die physische
Verbindung zwischen dem Internet und dem IP-Host 2, z.B. einem Personalcomputer,
zu dem ein E-Mail von IP-Host 1 zu senden ist, wird nicht gezeigt.
-
Wie
in dem unteren Teil von 6 gesehen werden kann, sind
ein TCP-Peer, ein IP-Peer und ein PPP-Peer in IP-Host 1 implementiert.
Der entsprechende TCP-Peer und ein IP-Peer befinden sich in IP-Host
2, wohingegen ein IP-Peer und ein PPP-Peer in dem Internetdienstanbieter ISP
implementiert sind.
-
Ein
wichtiger Aspekt des Schichtungsschemas besteht darin, dass die
unterschiedlichen Schichten "transparent" sind. Dies bedeutet,
dass sich die Peers in einer Schicht nicht dessen bewusst sind,
was in einer anderen Schicht geschieht. Als ein Beispiel stellen
die PPP-Peers eine Pseudo-dedizierte PPP-Verbindung zwischen dem IP-Host 1 und
dem Internetdienstanbieter ISP her. Die zwei PPP-Peers arbeiten
unabhängig
davon, welcher Typ einer physischen Verbindung verwendet wird, d.h.
unabhängig davon,
welche spezifischen Protokolle in unteren Schichten vorgesehen sind.
Gleichermaßen
geben die PPP-Peers Pakete, die von höheren Schichten kommen, transparent
weiter, d.h. ohne auf ihren Inhalt Bezug zu nehmen.
-
In
dem Beispiel von 6 sind eine Vorwärtsfehlerkorrektur- (FEC) Schicht und
eine Verschachtelungsschicht zwischen der Mobilstation MS und der
Basistransceiverstation BTS vorgesehen, eine Übergabe von Schicht 2 (L2R)
und eine Funkverknüpfungsprotokoll-
(RLP) Verbindung zwischen der Anschlussanpassungsfunktion TAF und
der mobilen Vermittlungsstelle MSC sind hergestellt, und Schnittstellen
V.42 und V.32 zwischen der Zusammenarbeitsfunktion IWF und dem Internetdienstanbieter
ISP sind hergestellt. Alle diese Protokolle mit Ausnahme von RLP
sind bekannt, und werden in weiteren nicht erläutert.
-
Es
sollte vermerkt werden, dass obwohl das RLP für den Transport von Dateneinheiten
von höheren
Schichten verantwortlich ist, dies nicht mittels Kapselung geschieht,
d.h. indem eine Dateneinheit der höheren Schicht in eine Dateneinheit
der unteren Schicht angepasst wird, sondern RLP vielmehr Segmentierung
durchführt,
d.h. eine Dateneinheit der höheren
Schicht wird in eine Vielzahl von Segmenten unterteilt und jedes
Segment wird in eine Dateneinheit der unteren Schicht platziert.
Mit anderen Worten sind die RLP-Dateneinheiten kleiner als die Dateneinheiten
der höheren
Schicht (z.B. ein PPP-Rahmen), die sie transportieren. In dieser
Beschreibung wird das Prinzip zum Platzieren von Dateneinheiten einer
höheren
Schicht in Dateneinheiten einer unteren Schicht als Einbetten bezeichnet,
was sowohl Kapselung als auch Segmentierung umfasst.
-
Wie
aus dem Obigen gesehen werden kann, werden Pakete, die mit unterschiedlichen
Protokollen in Verbindung stehen, manchmal unterschiedlich bezeichnet,
z.B. Rahmen, Segment, Datagramm etc. Zum Zweck der Klarheit verwendet
die vorliegende Beschreibung den Begriff "Paket" generisch, womit eine beliebige Dateneinheit
gemeint ist, die eine definierte Syntax hat, und eine Datenstruktur,
die durch ein vorbestimmtes Protokoll spezifiziert ist. "Datenstruktur" bedeutet, dass spezifische
Daten in definierten Stellen (Adressen) eine spezifische Bedeutung haben,
die durch das jeweilige Protokoll definiert ist. Ein Beispiel davon
wird in Verbindung mit 7 erläutert, worin eine Rahmenstruktur
in Übereinstimmung
mit dem Datenverknüpfungssteuerprotokoll hoher
Ebene (HDLC, highlevel data link control protocol) gezeigt wird.
HDLC ist ein sehr elementares Protokoll, und z.B. PPP hat viele
der elementaren Merkmale von HDLC übernommen.
-
7 zeigt
einen HDLC-Rahmen, der ein Adressfeld, ein Steuerfeld, ein Informationsfeld
und ein Prüffeld
hat. In HDLC sind das Adressfeld, das Steuerfeld und das Informationsfeld
von variabler Länge,
aber das Prüffeld
hat eine feste Länge, die durch
das Protokoll definiert ist. Z.B. ist das Informationsfeld einfach
als jene Oktetten definiert, die dem Steuerfeld folgen und dem Prüfwert vorangehen.
-
Ein
Feld ist deshalb ein Beispiel einer definierten Stelle in dem obigen
Sinn, und ein Protokoll wird definieren, dass eine spezifische Zahl
in einem spezifischen Feld auf eine gegebene Weise zu interpretieren
ist, d.h. die Zahl hat eine spezifische Bedeutung, die durch das
Protokoll definiert ist.
-
Problem, dass der Erfindung
zugrunde liegt
-
Mit
Bezug auf das Senden von Paketen ist bekannt, Modi von Übertragungszuverlässigkeit
vorzusehen, z.B. erlaubt das oben erwähnte HDLC zwei Modi von Übertragungszuverlässigkeit,
nämlich
den sogenannten nummerierten Modus (numbered mode)(oder I-Modus)
und den sogenannten nicht-nummerierten Modus (unnumbered mode)(oder
UI-Modus).
-
In
dem nummerierten Modus führt,
falls bestimmt ist, dass ein gesendetes Paket durch den empfangenden
Peer nicht richtig empfangen wurde, dann der sendende Peer Neuübertragung
des Paketes durch. Auf diese Weise kann sichergestellt werden, dass
alle Pakete richtig übertragen
werden, obwohl dies eine Verzögerung
in der Gesamtübertragungszeit
verursachen kann, abhängig
davon, wie viele Pakete neu zu übertragen
sind. Die Information über
den richtigen Empfang von Paketen wird typischerweise mittels Bestätigungsnachrichten
von dem empfangenden Peer zu dem sendenden Peer kommuniziert, und
der genaue Steuerfluss für
die Übertragung
und Neuübertragung
wird gewöhnlich
durch Verwenden des Konzeptes von gleitenden Fenstern (sliding windows)(so
genannter fensterbasierter Steuerfluss) durchgeführt, gemäß dem ein Sender mehr als ein
Paket senden kann, bevor eine Bestätigung empfangen wird, d.h.
nicht auf eine Bestätigung für jedes
Paket warten muss, bevor das nächste
ausgesendet wird. Diese Prinzipien des Steuerflusses sind in der
Technik gut bekannt, z.B. in dem oben erwähnten Buch von Stevens, und
müssen
hier nicht wiederholt werden.
-
Im
Gegensatz zu dem nummerierten Modus sieht der nicht-nummerierte
Modus Neuübertragung nicht
vor. Dies bedeutet, dass Pakete einfach in der gegebenen Reihenfolge
ausgesendet werden, ungeachtet dessen, ob sie durch den empfangenden
Peer richtig empfangen werden. Dieser Modus hat den Vorteil schnellerer Übertragung,
aber die Übertragungszuverlässigkeit
hängt von
der Qualität
der physischen Verbindung ab.
-
Übertragungszuverlässigkeit
ist insbesondere ein Problem in Verbindungen, die Funkverknüpfungen
umfassen. In dem Beispiel von 6 wird das
Funkverknüpfungsprotokoll
RLP betrieben. Alle bekannten Implementierungen von RLP sind fest
eingestellt, in dem nummerierten Modus zu laufen. Auf diese Weise
wird die zuverlässige Übertragung
von Daten über
eine Funkverknüpfung
sichergestellt, deren Übertragungsqualität stark
schwanken kann. Es ist bekannt, derartige Systeme, wie in 6 gezeigt, auf
eine derartige Weise zu implementieren, dass die Mobilstation MS
während
einer Verbindungseinrichtung anfordern kann, dass kein RLP läuft (auch
als ein transparenter leitungsvermittelter GSM-Datendienst in dem
Kontext des Beispiels von 6 bezeichnet).
Dies reduziert die Übertragungsverzögerung,
aber für
den Preis verringerter Übertragungszuverlässigkeit.
-
Dieses
Problem ist nicht auf das RLP oder auf Funkverknüpfungen beschränkt, sondern
tritt grundsätzlich
in einem beliebigen Protokoll auf, das einen Zuverlässigkeitsmodus
vorsieht, wie etwa den oben erwähnten
nummerierten Modus.
-
Allgemein
tritt außerdem
das Problem vom Auswählen
geeigneter Betriebsmodi für
die Übertragung
von Paketen in einer gewissen Schicht auf.
-
Aus
der Request for Comments (RfC) 2475 von Blake et al., Dezember 1998 (http://www.ietf.org/html.charters/diffservcharter.html)
ist ein Vorschlag für
eine Architektur für
differenzierte Dienste bekannt. RfC 2475 schlägt Klassifizierung und Markierung
von Paketen vor, um ein bestimmtes Weiterleitungsverhalten pro Sprung (PHB,
per-hop forwarding behavior) in Knoten entlang ihres Pfades zu empfangen.
Headerinformation in dem Header eines Paketes, das zu einer gegebenen
Protokollschicht gehört,
wird exklusiv durch Implementierungen der gegebenen Protokollschicht
verwendet. Die differenzierte Dienstarchitektur basiert auf einem
Modell, wo Verkehr, der in ein Netz eintritt, klassifiziert und
möglicherweise
in den Grenzen des Netzes aufbereitet, und unterschiedlichen Verhaltensanhäufungen
zugewiesen wird. Jede Verhaltensanhäufung wird durch einen einzelnen
differenzierten Dienst- (DS, differentiated services) Codepunkt
identifiziert. Es werden Paketklassifikatoren beschrieben, die Pakete
in einem Verkehrsstrom basierend auf dem Inhalt eines beliebigen
Abschnitts des Paketheaders auswählen.
Wie bereits erwähnt,
wird der DS-Codepunkt
oder das DS-Feld, der/das zu der IP-Schicht gehört, nur in der IP-Schicht verwendet. Es
wird ein Verhaltensanhäufungsklassifikator
beschrieben, der Pakete basierend nur auf dem DS-Codepunkt klassifiziert.
Es wird auch ein Multifeldklassifikator beschrieben, der Pakete
basierend auf dem Wert einer Kombination von einem oder mehr Headerfeldern
auswählt.
-
WO
95 31060 A offenbart ein Verfahren zum Übertragen von Datenpaketen
basierend auf einem Nachrichtentyp. Daten werden von einer Informationsquelle
zu einem Endgerät
transferiert, wobei eine Netzschnittstelle zum Auswählen eines
paketvermittelten Netzes oder eines leitungsvermittelten Netzes auf
der Basis des gesendeten Nachrichtentyps fähig ist. Der Zweck des beschriebenen
Verfahrens besteht darin, Daten über
entweder ein paketvermitteltes oder ein leitungsvermitteltes Netz
geeignet derart weiterzuleiten, dass der optimale Pfad verwendet wird.
Z.B. sollten kurze Nachrichten, wie etwa elektronische Post, durch
das paketvermittelte Netz weitergegeben werden, wohingegen lange
Nachrichten, wie etwa Dateitransfer, durch das leitungsvermittelte Netz
weitergegeben werden sollten.
-
Ziel der Erfindung
-
Es
ist das Ziel der vorliegenden Erfindung, allgemein einen Mechanismus
für Implementierungen
von Protokollen vorzusehen, der das obige Problem löst und die
Steuerung zum Auswählen
von Betriebsmodi effizienter macht, z.B. eine bessere Beziehung
zwischen Übertragungszuverlässigkeit
und Übertragungsgeschwindigkeit
ermöglicht.
-
Beschreibung
der Erfindung
-
Dieses
Ziel wird durch die Einrichtung und das Verfahren gelöst, die
in den unabhängigen
Ansprüchen
beschrieben werden, wobei eine Kommunikationseinrichtung vorgesehen
wird zum Generieren von Datenpaketen, die auszusenden sind, mit
einer ersten Datenstruktur, die durch ein erstes vorbestimmtes Protokoll
bestimmt wird, die angeordnet ist, Datenpakete einer zweiten Struktur
zu empfangen, die durch ein vorbestimmtes zweites Protokoll bestimmt
wird, und Generieren der Datenpakete der ersten Struktur durch Einbetten
von jedem Datenpaket der zweiten Struktur in ein oder mehr Datenpakete
der ersten Struktur, und die ein Diskriminatormittel umfasst, das
angeordnet ist, das Datenpaket der zweiten Struktur gemäß vorbestimmten
Regeln zu unterscheiden, auf der Basis des Inhalts der Datenpakete
der zweiten Struktur.
-
Vorteilhafte
Ausführungsformen
werden in den abhängigen
Ansprüchen
beschrieben.
-
Gemäß der vorliegenden
Erfindung wird die Implementierung eines Protokolls gegenüber dem Typ
von gesendeten Daten empfindlich gemacht, sodass die Einstellung
von Parametern, die für
die Übertragung
relevant sind, automatisch in der Schicht abgestimmt werden können, die
die Parameter einstellt, die in Übereinstimmung
mit dem Inhalt der zu sendenden Pakete abgestimmt werden. Mit anderen
Worten kann die vorliegende Erfindung berücksichtigen, dass die Daten
in Paketen, die von einer höheren
Schicht empfangen werden, um gekapselt oder segmentiert und weiter
gesendet zu werden (entweder direkt in die Verknüpfung oder weiter zu der unteren
Schicht), in unterschiedliche Kategorien mit Bezug auf die abstimmbaren
Parameter klassifiziert werden können,
wobei die Parameter für
das einzelne Paket in Übereinstimmung
mit der Kategorie automatisch abgestimmt werden können, in
die klassifiziert wird.
-
Der
Begriff Inhalt verweist auf beliebigen Inhalt. Es sollte vermerkt
werden, dass der spezifische Typ von Inhalt, der zum Unterscheiden
verwendet wird, deshalb Daten sein kann, die durch den Veranlasser
des Paketes in einer spezifischen Schicht bewusst hinzugefügt werden
angesichts der Unterscheidungsoperation in einer unteren Schicht,
d.h. es gibt ein Schema, durch das Peers einer höheren Schicht Information zu
Peers einer unteren Schicht spezifizieren können, um Betriebsmodi in der
unteren Schicht zu beeinflussen, z.B. durch Verwenden eines vorbestimmten
Feldes des Protokolls der höheren Schicht,
oder die Unterscheidungsoperation in der unteren Schicht wird unabhängig und
individuell durchgeführt,
d.h. ohne irgendwelchen aktiven Einfluss von höheren Schichten, nämlich durch
Parsen (Analysieren) von Daten, die nicht die Absicht einer Übermittlung
von Information zu unteren Schichten tragen, z.B. der Protokoll-ID
in einem Header.
-
Die
vorliegende Erfindung entwickelt deshalb ein Konzept, das grundsätzlich der
fest hergestellten Unterweisung widerspricht, dass alle Schichten
unabhängig
voneinander arbeiten müssen.
Im Gegensatz zu dem, was bekannt ist, nämlich die Möglichkeit, dass eine höhere Schicht
einen spezifischen Parameter (z.B. Zuverlässigkeit) in einer unteren
Schicht setzt, wenn die Verbindung eingerichtet wird, führt die
vorliegende Erfindung die Implementierung eines gegebenen Protokolls
in einer gegebenen Schicht intelligent derart durch, dass sie flexibel und
gemäß ihren
eigenen Bestimmungen die Parameter abhängig von dem Typ von Paketen,
die zu senden sind, kontinuierlich setzt.
-
Gemäß einer
bevorzugten Ausführungsform der
vorliegenden Erfindung beziehen sich die abstimmbaren Parameter
auf den Zuverlässigkeitsmodus
derart, dass der Zuverlässigkeitsmodus
(z.B. der nummerierte oder nicht-nummerierte Modus) automatisch
in der Schicht abgestimmt wird, die das Einbetten durchführt, auf
der Basis des Unterscheidungsergebnisses.
-
Diese
bevorzugte Ausführungsform
sieht den Vorteil vor, dass Datenpakete, die für unterschiedliche Übertragungszuverlässigkeitsmodi
geeignet sind, automatisch zwischen Peers der Schicht gleichzeitig
gesendet werden können,
in der die vorliegende Erfindung angewendet wird. Falls z.B. die vorliegende
Erfindung auf eine Implementierung des RLP angewendet wird, das
PPP-Pakete durch Segmentierung einbettet, die wiederum Pakete höherer Schichten
kapseln, wie etwa IP und darüber
TCP oder UDP, dann kann die RLP-Implementierung in Übereinstimmung
mit der Erfindung die Pakete erkennen, die UDP-Pakete enthalten, und jene, die TCP-Pakete
enthalten, und kann z.B. die UDP-Pakete in dem nicht-nummerierten
Modus und die TCP-Pakete in dem nummerierten Modus in der RLP-Schicht
senden.
-
Wie
bereits in diesem letzten Beispiel angezeigt, wird die Ausführungsform
in Bezug auf die Einstellung von Zuverlässigkeitsmodi vorzugsweise
auf die Implementierung des Protokolls in der Verknüpfungsschicht
(z.B. RLP) angewendet. Auch geschieht die Klassifizierung in Kategorien
vorzugsweise durch Berücksichtigen
der Übertragungszuverlässigkeitsbereitstellungen
der Pakete einer höheren
Schicht, die klassifiziert werden. In dem obigen Beispiel wurden
die UDP-Pakete in eine Kategorie derart klassifiziert, dass sie
in dem nicht-nummerierten Modus gesendet werden, was von Vorteil
ist, da das UDP selbst erneute Übertragung
von beschädigten
Paketen nicht vorsieht. Im Gegensatz dazu sieht TCP erneute Übertragung
vor. Durch Anwenden der vorliegenden Erfindung ist es möglich, TCP-Pakete
und UDP-Pakete gleichzeitig in der RLP-Schicht zu senden, dessen ungeachtet
aber jedes Paket in dem geeigneten Übertragungszuverlässigkeitsmodus
in der RLP-Schicht,
was bedeutet, dass die TCP-Pakete mit der gewünschten oder notwendigen Zuverlässigkeit
in dem nummerierten Modus gesendet werden können, wohingegen die UDP-Pakete
durch potenzielle erneute Übertragungen
dadurch, dass auch sie in dem nummerierten Modus gesendet werden,
nicht unnötig
verzögert
werden.
-
In
Verbindung mit dem obigen Beispiel bietet die Erfindung große Vorteile.
PPP wird verwendet, um viele Protokolle, wie etwa IP, LCP (Verknüpfungssteuerprotokoll),
PAP (Passwortauthentifizierungsprotokoll) etc., gleichzeitig über eine
serielle Verknüpfung
zu transportieren. Ein PPP-Protokollidentifikator identifiziert,
welche Protokolldateneinheit (PDU, protocol data unit) oder Protokollpaket
in einem bestimmten PPP-Paket enthalten ist. IP, was wiederum durch
PPP übertragen
wird, kann Pakete vieler Protokolle übertragen, nämlich TCP,
und IP und ICMP (Internetsteuernachrichtenprotokoll, Internet Control
Message Protocol), die auch durch einen Protokollidentifikator in
den IP-Header unterschieden werden. Die unterschiedlichen Protokolle,
die schließlich
durch PPP transportiert werden, haben unterschiedliche Anforderungen,
die den Kompromiss zwischen Zuverlässigkeit gegenüber Verzögerung erfordern.
Folglich ist entweder der nummerierte oder der nicht-nummerierte
Modus von RLP für
gewisse Datenströme
geeignet. Genauer sollten Signalisierungsnachrichten, wie etwa LCP
oder PAP, in dem nummerierten Modus übertragen werden, wohingegen
Echtzeit-Datenströme
(z.B. Sprachinformation für
eine Internettelefonkonversation, die in UDP-Paketen gesendet wird)
gewöhnlich
Verluste tolerieren können,
aber gegenüber
Verzögerung
empfindlicher sind, was am besten mit dem nicht-nummerierten Modus
bedient wird.
-
In
den bekannten Implementierungen und Systemen könnte dieser Konflikt nicht
gelöst
werden. Falls RLP, das fest in dem nummerierten Modus läuft, verwendet
wird, dann kann ein Echtzeit-UDP-Datenstrom nicht parallel in einer
mobilen Berechnungseinrichtung mit einem Datenstrom (z.B. TCP) laufen,
der den nummerierten Modus erfordert, betrieben werden. Falls RLP
nicht verwendet wird, dann kann, nachdem die leitungsvermittelte
Verbindung hergestellt ist, was bedeutet, dass Gebühren fällig werden, die
Herstellung der PPP-Verknüpfung
ausfallen, da LCP-Pakete in dem nicht-nummerierten Modus beschädigt werden
können.
Folglich müsste
der Teilnehmer für
den Ruf bezahlen, würde
aber den gewünschten
Dienst nicht empfangen.
-
Die
vorliegende Erfindung löst
diesen Konflikt, da gemäß der Erfindung
die RLP-Implementierung die LCP-Nachrichten automatisch in dem nummerierten
Modus senden wird, wodurch sichere PPP-Verknüpfungsherstellung sichergestellt
wird, und dann folgende PPP-Pakete, die UDP-Pakete enthalten, in
dem nicht-nummerierten
Modus senden wird, sodass diese nicht unnötig verzögert werden. Außerdem kann
nicht nur ein derartiger Konflikt zwischen unterschiedlichen Arten
von Paketen gelöst werden,
die in unterschiedlichen Zeiten während einer Verbindung gesendet
werden, sondern die vorliegende Erfindung erlaubt auch, dass zwei
in Konflikt stehende Ströme
(im Sinne von Zuverlässigkeit)
parallel gesendet werden, z.B. der oben erwähnte UDP-Datenstrom gemeinsam
mit den TCP-Paketen.
-
Es
sollte vermerkt werden, dass die oben erwähnten Protokolle und die oben
erwähnte
Situation lediglich Beispiele sind, die verwendet werden, um die
Ausführungsform
und ihre Vorteile besser zu erklären.
Wie bereits erwähnt,
kann die Ausführungsform
in Bezug auf die Einstellung von Zuverlässigkeitsmodi auf eine beliebige
Implementierung eines Protokolls angewendet werden, das zwei oder
mehr Zuverlässigkeitsmodi
erlaubt. Z.B. kann sie auch angewendet werden, falls LLC- (logisches
Verknüpfungsprotokoll,
Logical Link Control) Pakete über eine
RLC- (Funkverknüpfungssteuerung,
Radio Link Control) Verknüpfung
zu senden sind. Gleichermaßen
ist der Ort einer Implementierung natürlich nicht auf das obigen
Beispiel von 6 eingeschränkt, sondern wird dort sein,
wo auch immer er für
das gegebene Protokoll geeignet oder wünschenswert ist. Z.B. wäre dies
in einem allgemeinen Paketfunkdienst (GPRS, General Packet Radio
Service) die TAF und der GSN (GPRS-Unterstützungsknoten).
-
In
der Tat bedeutet dies, dass die Anwendung der vorliegenden Erfindung
auf die Einstellung von Zuverlässigkeitsmodi
automatisch virtuelle Übertragungszuverlässigkeitskanäle für die jeweilige
Zahl von Übertragungszuverlässigkeitsmodi
vorsieht, die vorgesehen oder ausgewählt werden, wobei die Implementierung
spezifische Typen von Paketen in einen spezifischen virtuellen Kanal
platziert. In dem Kontext des obigen Beispiels bedeutet dies, dass
zwei virtuelle Kanäle
bereitgestellt werden, da es zwei Übertragungszuverlässigkeitsmodi
gibt, d.h. ein nummerierter Kanal und ein nicht-nummerierter Kanal
vorgesehen sind, und TCP-Pakete (genauer: Pakete, die TCP-Pakete
einbetten) werden in den nummerierten Kanal platziert, und UDP-Pakete
werden in den nicht-nummerierten Kanal platziert.
-
Wenn
das obige Beispiel in einem allgemeineren Sinn ausgedrückt wird,
kann die Erfindung auf das Übertragungsschema
von ARQ-basierter Fehlerkorrektur (ARQ = automatische Wiederholungsanforderung,
Automatic Repeat reQuest) angewendet werden, wobei die Wahl eines
Betriebsmodus (d.h. ein Zuverlässigkeitsmodus
in diesem Kontext von ARQ) auf dem Inhalt von Paketen basieren kann,
die eingebettet sind. Die möglichen
Modi sind natürlich nicht
nur auf zwei eingeschränkt,
d.h. den unzuverlässigen
(UI-Modus) und den zuverlässigen
(I-Modus), sondern können
auch eine größere Zahl
derart haben, dass es einen semizuverlässigen Modus zusätzlich zu
dem UI-Modus und
dem I-Modus gibt, wobei der semizuverlässige Modus eine Kombination der
zwei anderen mit In-Sequenz-Abgabe oder Außer-Sequenz-Abgabe ist.
-
Wie
oben gesehen werden kann, kann die vorliegende Erfindung auf die
Einstellung von Zuverlässigkeitsmodi
angewendet werden, ist aber keineswegs darauf beschränkt. Ganz
im Gegenteil ist die vorliegende Erfindung auf die Einstellung oder
Abstimmung einer beliebigen Art von Betriebsmodus in dem Kontext
vom Einbetten von Paketen einer höheren Schicht in einer unteren
Schicht anwendbar. Genauer ist die vorliegende Erfindung auf alle Übertragungsschemata
anwendbar, die mindestens zwei unterschiedliche Betriebsmodi haben,
wie etwa das Übertragungsschema
von FCS-basierter Fehlererfassung (FCS = Rahmenprüfungssequenz,
Frame Check Sequence) mit z.B. den Betriebsmodi, dass der Empfänger fehlerhafte
Rahmen verwirft, der Empfänger
fehlerhafte Rahmen markiert, aber nicht verwirft, und der Empfänger fehlerhafte
Rahmen weder markiert noch verwirft, wobei die Unterscheidungsoperation
natürlich angesichts
beliebiger zwei der Modi oder aller drei durchgeführt werden
kann. Oder die Erfindung ist auf das Übertragungsschema von FEC-basierter
Fehlerkorrektur (FEC = Vorwärtsfehlersteuerung,
Forward Error Control) mit den Betriebsmodi z.B. einer Verwendung
von einem von zwei oder mehr FEC-Schemata anwendbar. Oder die Erfindung
ist auf das Übertragungsschema
verschachtelungsbasierter Fehlerverhinderung mit den Betriebsmodi
von z.B. einer Verwendung von einem von zwei oder mehr Verschachtelungsschemata
anwendbar. Oder die Erfindung ist auf das Übertragungsschema von Leistungssteuerung
mit den Betriebsmodi von z.B. einer Verwendung von einem von zwei
oder mehr Leistungspegeln anwendbar. Oder die Erfindung ist auf
das Übertragungsschema
spreizungsbasierter Fehlerverhinderung (in Spreizspektrum-Technologien,
wie etwa CDMA) mit den Betriebsmodi von z.B. einer Verwendung von
einem von zwei oder mehr Spreizfaktoren anwendbar. Oder die Erfindung
ist auf das Übertragungsschema
von Rahmenlängensteuerung
mit den Betriebsmodi einer Verwendung von z.B. einer von zwei oder
mehr möglichen
Rahmenlängen
anwendbar. Oder die Erfindung ist auf das Übertragungsschema von Bandbreitenreservierungssteuerung
mit den geeigneten Betriebsmodi anwendbar, wie etwa die Zuordnung
von 1, 2, 3, ... oder 8 Zeitschlitzen in z.B. dem GPRS-Kommunikationsstandard.
-
Ein
wichtiger Vorteil der vorliegenden Erfindung besteht in der Tatsache,
dass sie im Prinzip nicht die Änderung
beliebiger Protokolle erfordert, sondern nur ihrer Peer-Implementierungen,
sodass sie in einem beliebigen geeigneten Kontext ohne Kompatibilitäts- oder Übergangsprobleme
universell angewendet werden kann.
-
Gemäß einer
anderen bevorzugten Ausführungsform
wird die vorliegende Erfindung angewendet, um einen Weg zum Übertragen
von Paketen in einer unteren Schicht in Übereinstimmung mit Übertragungsqualitätsanforderungen
(wie etwa QoS- (Dienstgü te,
Quality of Service) Anforderungen und/oder Übertragungseigenschaften) vorzusehen, die
durch Peers einer höheren
Schicht spezifiziert werden, wobei die Pakete oder Dateneinheiten
der höheren
Schicht in der unteren Schicht eingebettet sind. Die Peers der höheren Schicht
verwenden die Pakete der Schicht als ein Fahrzeug zum Übermitteln der
Qualitätsanforderungen
zu der unteren Schicht, d.h. es gibt ein standardisiertes Schema,
durch das die Qualitätsanforderungen
durch Implementierungen von beiden Schichten verstanden werden können. Als
ein Beispiel kann dies durch Verwenden eines vordefinierten Feldes
in dem Header der Pakete der höheren
Schicht und Standardisieren des Inhalts des Feldes geschehen. Mit
anderen Worten wird ein Typ eines Steuerkanals zum Übermitteln
von Qualitätsanforderungen
von der höheren
Schicht zu der unteren Schicht vorgesehen. Die Qualitätsanforderungen
werden nicht nur verwendet, um Pakete oder Flüsse der höheren Schicht (ein Fluss ist
ein eindeutig identifizierbarer Strom von Paketen) auf Betriebsmodi
abzubilden, die für
die Übertragung
in der unteren Schicht vorgesehen sind, sondern um auch die Betriebsmodi
selbst dynamisch anzupassen, mindestens teilweise auf der Basis
der Qualitätsanforderungen.
-
Es
kann vermerkt werden, dass die Übertragungsqualitätsanforderungen
ein Typ von Steuerinformation sind, was als ein Qualitätsbefehl
verwendet werden kann, um die höhere
Schicht einen spezifischen Betriebsmodus in der unteren Schicht
einstellen zu lassen, oder durch die Implementierung der unteren
Schicht derart frei verwendet werden kann, dass die Implementierung
der unteren Schicht den Betriebsmodi für ein gegebenes Paket wählt, das
die Qualitätsanforderung überträgt auf der
Basis der Qualitätsanforderung,
aber die höhere
Schicht keinen direkten Einfluss darauf hat, welchen Modus die untere
Schicht wählen
wird.
-
Weitere
Aspekte und Vorteile der vorliegenden Erfindung werden aus der folgenden
detaillierten Beschreibung von bevorzugten Ausführungsformen leichter verständlich,
in denen auf die Figuren Bezug genommen wird, die diese bevorzugten
Ausführungsformen
veranschaulichen.
-
Kurze Beschreibung
der Figuren
-
1 ist
ein Blockdiagramm, das eine Ausführungsform
einer Kommunikationseinrichtung gemäß der vorliegenden Erfindung
zeigt;
-
2 ist
ein Flussdiagramm, das eine Ausführungsform
eines Verfahrens gemäß der vorliegenden
Erfindung zeigt;
-
3 ist
ein schematisches Diagramm zum Erläutern des Konzepts von Protokollschichtung
im Sinne des Beispiels der TCP/IP-Suite;
-
4 ist
ein schematisches Diagramm zum Erläutern des Flusses von Paketen
durch die Schichten, die in 3 gezeigt
werden;
-
5 ist
ein schematisches Diagramm, das das Konzept von Kapselung in den
anschließenden Protokollschichten
von 3 und 4 zeigt;
-
6 zeigt
ein schematisches Beispiel einer Verbindung zwischen zwei IP-Hosts über eine
leitungsvermittelte GSM-Verknüpfung,
und die entsprechende Hierarchie von Schichten und Protokollen;
-
7 zeigt
die Basisstruktur eines HDLC-Rahmens;
-
8 ist
ein Blockdiagramm einer bevorzugten Ausführungsform der Einrichtung
gemäß der vorliegenden
Erfindung;
-
9a und 9b sind
ein Flussdiagramm, das eine bevorzugte Ausführungsform des Verfahrens der
vorliegenden Erfindung zeigt;
-
10 zeigt
eine Kommunikationsanordnung zum Erläutern einer anderen bevorzugten
Ausführungsform
der Erfindung.
-
Detaillierte
Beschreibung der bevorzugten Ausführungsformen
-
Die
vorliegende Erfindung wird auf dem Weg von Ausführungsformen in Bezug auf die
Einstellung von Übertragungszuverlässigkeitsmodi
beschrieben. Wie bereits erwähnt,
ist dies eine bevorzugte Anwendung der Erfindung und dient gut dazu,
um die Erfindung zu veranschaulichen. Die Erfindung ist jedoch allgemein
anwendbar auf die Einstellung einer beliebigen Art von abstimmbarem
Parameter, z.B. auch auf die Einstellung von Sicherheitsmodi.
-
Eine
grundlegende Ausführungsform
der vorliegenden Erfindung wird mit Bezug auf 1 beschrieben.
In Übereinstimmung
mit dieser Ausführungsform
empfängt
eine Kommunikationseinrichtung, die durch die Implementierung eines
Kommunikationsprotokolls von Schicht n gebildet wird, Pakete von
einer höheren
Schicht (n + 1) derart, dass diese Pakete in Pakete der Schicht
n eingebettet werden können.
Wie bereits erwähnt,
umfasst der Begriff "Einbetten" sowohl Kapselung
als auch Segmentierung. Es sollte bemerkt werden, dass der gesamte einführende Abschnitt
der vorliegenden Anmeldung in die Offenbarung der Erfindung einbezogen
ist, um dadurch unnötige
Wiederholungen zu vermeiden.
-
Als
ein Beispiel könnte
das Protokoll von Schicht n RLP sein, und die Pakete von Schicht
(n + 1) könnten
PPP-Rahmen sein, in welchem Fall das Einbetten in der Segmentierung
eines PPP-Rahmens
oder Paketes in eine Vielzahl von RLP-Paketen bestehen würde. Es
kann vermerkt werden, dass ein PPP-Rahmen typischerweise eine Länge von
1500 Bytes haben wird, wohingegen ein RLP-Rahmen typischerweise
eine Länge
von 30 Bytes haben wird. Ein anderes Beispiel wäre, dass das Protokoll von Schicht
n PPP ist und das Protokoll von Schicht (n + 1) ein geeignetes Protokoll
einer höheren
Schicht ist, wie etwa eines der Protokolle, die in 5 gezeigt werden,
in welchem Fall das Einbetten durch Kapselung geschehen würde.
-
In Übereinstimmung
mit der Erfindung hat diese Ausführungsform
einen Diskrimininator (Unterscheidungsmittel) 1, der das
Paket von Schicht (n + 1) empfängt,
wobei der Diskrimininator das empfangene Pakete gemäß vorbestimmten
Regeln von Klassifizierung unterscheidet (diskriminiert). Dies bedeutet,
dass der Diskrimininator auf gewisse Eigenschaften des empfangene
Paketes prüfen
wird, und dann das empfangene Paket gemäß den gegebenen Regeln klassifizieren
wird. Ein Beispiel davon könnte in
dem Fall, dass die Pakete von Schicht n PPP-Rahmen sind, sein, die
einzelnen Header des empfangenen PPP-Rahmens zu prüfen, um
dadurch zu bestimmen, welcher Typ von Information durch den Rahmen
transportiert wird, und dann den Rahmen entsprechend zu klassifizieren.
Falls z.B. der Rahmen LCP-Information überträgt, dann kann er in die Kategorie "zuverlässiger Transport" klassifiziert werden, und
falls er UDP-Information überträgt, dann
kann er in die Kategorie "Zuverlässigkeit
nicht erforderlich" klassifiziert
werden.
-
Es
ist klar, dass die oben erwähnten
Protokolle und Kategorien nur Beispiele sind, und sich die vorliegende
Erfindung auf alle Typen von Diskrimininatoren bezieht, die zum
Klassifizieren eines empfangenen Paketes in Übereinstimmung mit seinem Inhalt
fähig sind.
Als eine Folge können
diese Pakete grundsätzlich
von einem beliebigen Protokoll sein, und natürlich kann es eine beliebige
Zahl von Kategorien geben, in die Pakete klassifiziert werden. Diese
Zahl von Kategorien kann gleich der Zahl von Übertragungszuverlässigkeitsmodi
sein, die das Protokoll von Schicht n bereitstellt, kann aber auch
kleiner sein, falls das Protokoll von Schicht n mehr als zwei Modi
von Übertragungszuverlässigkeit
bereitstellt.
-
Das
Ergebnis der Unterscheidung (Diskriminierung), d.h. die Klassifizierung,
wird zu einem Steuermittel 2 übermittelt, das wiederum ein
Einbettungsmittel 3 mit einem Übertragungszuverlässigkeitseinstellungsbefehl
steuert. Mit anderen Worten gibt der Diskrimininator das Paket,
das einzubetten ist, zu dem Einbettungsmittel 3 weiter,
wo es in ein oder mehr Pakete von Schicht n eingebettet wird und
der Übertragungszuverlässigkeitsmodus,
der in jedem Paket von Schicht n z.B. durch ein entsprechendes Flag
gesetzt ist, in Übereinstimmung
mit dem Übertragungszuverlässigkeitseinstellungsbefehl
eingestellt wird.
-
Die
so generierten Pakete von Schicht n werden dann geeignet zu der
nächsten
Stufe der Verarbeitung weitergegeben. Diese nächste Stufe der Verarbeitung
hängt von
der spezifischen Anwendung ab, und kann deshalb auf eine beliebige
gewünschte oder
erforderliche Weise gewählt
werden. Falls z.B. die Pakete von Schicht n gedacht sind, direkt
zu einer nächsten
unteren Schicht von (n – 1)
zu gehen (in 1 nicht gezeigt), dann ist es
möglich,
dass die Pakete von Schicht n einfach zu einem Eingangspuffer der
nächsten
Schicht weitergegeben werden. Falls andererseits z.B. die Pakete
gedacht sind, über eine
hergestellte Verknüpfung
gesendet zu werden, dann werden sie vorzugsweise in einen Ausgangspuffer
platziert, der in Übereinstimmung
mit der gegebenen Situation geeignet gesteuert wird. Das genaue Verfahren
von Flusssteuerung von einem derartigen Ausgangspuffer hängt von
der spezifischen Anwendung ab, z.B. dem gegebenen Protokoll von
Schicht n und von der spezifischen Verknüpfung.
-
Wie
aus dem obigen gesehen werden kann, ist die vorliegende Erfindung äußerst flexibel
dadurch, dass sie auf eine beliebige Protokollimplementierung angewendet
werden kann, die Pakete einer Schicht in Pakete einer anderen einbettet
und die mindestens zwei unterschiedliche Zuverlässigkeitsmodi bereitstellt.
-
2 zeigt
ein Flussdiagramm, das das Verfahren der vorliegenden Erfindung
verkörpert.
In einem ersten Schritt S1 wird bestimmt, ob ein Paket eines Protokolls
einer höheren
Schicht empfangen wurde oder nicht. Falls ein derartiges Paket empfangen
wurde, dann fährt
der Prozess zu Schritt S2 fort, in dem das empfangene Pakete gemäß vorbestimmten
Regeln von Klassifizierung unterschieden wird. In Schritt S3 wird
das empfangene Paket dann in ein oder mehr Pakete der gegebenen
Schicht (z.B. n in 1) eingebettet und der Übertragungszuverlässigkeitsmodus
in jedem der Pakete wird in Übereinstimmung
mit dem Unterscheidungsergebnis gesetzt. Schließlich werden die eingebetteten
Pakete zu der nächsten
Stufe weitergegeben, wo der in 2 gezeigte
Prozess die Pakete zu einem Ausgangspuffer in Schritt S4 sendet,
damit sie ausgesendet werden.
-
Ein
System entsprechend dem, was in 1 gezeigt
wird, und mit einem Eingangs- und einem Ausgangspuffer wird in 8 gezeigt.
Wie gesehen werden kann, hat die Einrichtung von 8 auch
einen Diskrimininator 1, ein Steuermittel 2 und
ein Einbettungsmittel 3, und zusätzlich werden ein Eingangspuffer 4 und
ein Ausgangspuffer 5 gezeigt, die auch beide verbunden
sind mit dem und gesteuert werden durch das Steuermittel 2.
Die Operation ist ähnlich
zu dem, was in Verbindung mit 1 erklärt wird,
nur dass die Pakete von Schicht n dem Diskrimininator 1 über den
Eingangspuffer 4 bereitgestellt werden, wobei das Steuermittel 2 eine
geeignete Steuerung durchführt,
um den Eingangspuffer 4 Pakete zu dem Diskrimininator 1 weitergeben
zu lassen, und dadurch, dass 8 ein Beispiel
zeigt, in dem das Einbettungsmittel 3 die Pakete von Schicht
n zu einem Ausgangspuffer weitergibt, der die Pakete von Schicht
n unter Steuerung des Steuermittels 2 aussendet.
-
Wie
bereits erwähnt,
ist die vorliegende Erfindung dadurch flexibel, dass ein beliebiges
geeignetes Verfahren zur Flusssteuerung gewählt werden kann. Als ein Ergebnis
können
in einem Fall, dass es zwei Übertragungszuverlässigkeitsmodi
gibt, wie etwa der oben beschriebene nummerierte und nicht-nummerierte
Modus, dann jeweilige Pakete von Schicht n in getrennte Schlangen
in dem Ausgangspuffer 5 platziert werden. Falls es mit
anderen Worten zwei Übertragungszuverlässigkeitsmodi
gibt, die in den Paketen von Schicht n eingestellt werden können, dann
wird der Ausgangspuffer 5 zwei Schlangen enthalten. Falls
diese Zuverlässigkeitsmodi
der nummerierte und nicht-nummerierte Modus sind, dann wird der
Ausgangspuffer eine Schlange für
Pakete des nummerierten Modus und eine Schlange für Pakete
des nicht-nummerierten Modus haben.
-
Im
allgemeinen kann eine Ausführungsform dieses
Systems, die in 8 gezeigt wird, aus dem Ausgangspuffer 5 bestehen,
der eine jeweilige Schlange für
jeden Übertragungszuverlässigkeitsmodus
trägt,
in die Pakete durch den Diskrimininator 1 unterschieden
werden. Dann können
die Pakete in den einzelnen Schlangen auf eine beliebige geeignete
oder gewünschte
Weise behandelt werden, z.B. kann es eine vorbestimmte Prioritätsreihenfolge
für die
einzelnen Schlangen geben (d.h. die einzelnen Zuverlässigkeitsmodi).
Ein Beispiel dessen in einer Implementierung mit nur einem nummerierten
und einem nicht- nummerierten
Modus könnte
sein, dass es keine grundsätzliche
Prioritätsreihenfolge
zwischen nummerierten und nicht-nummerierten Paketen für zu sendende
erste Pakete gibt (diese Pakete werden auf eine FIFO-Weise ungeachtet
dessen behandelt, zu welcher Schlange sie gehören), dass aber die nummerierten
Pakete, die erneut zu übertragen
sind, eine höhere
Priorität
erhalten und folglich bevorzugt transferiert werden. Auch in einem
derartigen Fall kann der Steuerfluss von Paketen von der Schlange des
nummerierten Modus in Übereinstimmung
mit der bekannten fensterbasierten Flusssteuerung durchgeführt werden,
wohingegen die Flusssteuerung von der Schlange des nicht-nummerierten
Modus durch einfaches Aussenden dieser Pakete in der geeignete Reihenfolge
geschehen kann.
-
Es
existieren jedoch ebenso andere Möglichkeiten, wie in Verbindung
mit anderen bevorzugten Ausführungsformen
im weiteren genauer erläutert wird.
-
Eine
bevorzugte Ausführungsform
für das Verfahren
der vorliegenden Erfindung wird in 9a und 9b gezeigt.
Schritte, die jenen entsprechen, die bereits in Verbindung mit 2 erörtert wurden, tragen
die gleichen Bezugszeichen. Das Verfahren, das in 9a und 9b gezeigt
wird, bezieht sich auf einem Fall, in dem die Erfindung auf die
Implementierung eines Protokolls angewendet wird, wobei das Protokoll
einen nummerierten Zuverlässigkeitsmodus
(I-Modus) und einen nicht-nummerierten
Zuverlässigkeitsmodus
(UI-Modus) vorsieht. Mit anderen Worten werden in dem nummerierten
Modus Pakete erneut übertragen,
falls sie durch den empfangenden Peer nicht richtig empfangen werden,
wobei der richtige Empfang dem sendenden Peer mittels Bestätigungspaketen übermittelt
wird, und der nicht-nummerierte Modus Neuübertragung nicht vorsieht.
-
In 9 tragen Schritte, die jenen gleich oder äquivalent
sind, die in Verbindung mit 2 beschrieben
werden, das gleiche Bezugszeichen. In einem ersten Schritt S1 wird
bestimmt, ob ein Paket einer höheren
Schicht empfangen wurde. Falls ja, dann fährt der Prozess zu Schritt
S21 fort, in dem der Protokoll-ID in dem Header des empfangenen
Paketes einer höheren
Schicht analysiert wird. Falls z.B. das empfangene Paket einer höheren Schicht
ein PPP-Rahmen ist, wie unten in 5 gezeigt,
dann wird der Prozess einfach den PPP-Header direkt folgend dem
Startflag prüfen.
Dann wird in Schritt S22 bestimmt, ob der identifizierte Protokoll-ID
mit dem nummerierten Modus in Verbindung steht, wobei sich die Verbindung
durch die oben erwähnten
vorbestimmten Regeln ergibt. In dem Fall von PPP-Paketen ist es
z.B. wünschenswert,
falls die Regeln angeben, dass LCP-Pakete in den nummerierten Modus gebracht
werden, da derartige LCP-Pakete ein Teil der Verknüpfungseinrichtungsprozedur
sind, wo ein hoher Betrag von Zuverlässigkeit notwendig ist. Falls der
Prozess in Schritt S22 bestimmt, dass LCP-Information transportiert
wird, dann verzweigt die Prozedur folglich zu Schritt S31, in dem
das empfangene Paket einer höheren
Schicht in ein oder mehr Pakete der Schicht eingebettet wird, in
der die vorliegende Erfindung implementiert ist, wobei der Zuverlässigkeitsmodus
in jedem von dem einen oder mehr Paketen zu dem nummerierten Modus
eingestellt ist, z.B. durch Einstellen des entsprechenden Zuverlässigkeitsmodusflags
in jedem Paket.
-
Falls
in Schritt S22 bestimmt wird, dass der identifizierte Protokoll-ID
nicht mit dem nummerierten Modus in Verbindung steht, dann bestimmt
Schritt S23, ob der identifizierte Protokoll-ID mit dem nicht-nummerierten
Modus in Verbindung steht. Falls dies der Fall ist, dann fährt der
Prozess zu Schritt S32 fort, in dem das empfangene Paket einer höheren Schicht
in ein oder mehr Pakete der Schicht eingebettet wird, in der die
vorliegende Erfindung implementiert ist, und der Zuverlässigkeitsmodus
in jedem der einen oder mehr Pakete wird zu dem nicht-nummerierten
Modus gesetzt, z.B. durch Ein stellen des geeigneten Flags. Falls
beide Schritte S22 und S23 zu einem negativen Ergebnis führen, dann
spezifiziert Schritt S24, dass die Prüfung eine Protokollschicht
nach oben in dem empfangenen Paket derart fortfährt, dass der nächste Header
geprüft
wird. Wenn erneut zu dem Beispiel unten von 5 geschaut
wird, wäre
dies der IP-Header, der einen Protokoll-ID trägt, der TCP-, UDP-und ICMP-Daten
unterscheidet. Der Prozess wiederholt dann die Schritte S21 bis
S24. Falls der bestimmte Protokoll-ID erneut weder dem nummerierten
Modus noch dem nicht-nummerierten Modus zugeordnet werden kann, dann
geht der Prozess erneut eine Protokollschicht nach oben, z.B. in
dem Beispiel von 5 zu dem TCP-Header.
-
Im
allgemeinen wird die Verbindung zwischen gegebenen Protokollpaketen
und dem nummerierten Modus oder dem nicht-nummerierten Modus in
einer Tabelle gespeichert, in der während der Entscheidungsschritte
S22 und S23 nachgeschlagen wird. Idealerweise sollte es so sein,
dass alle möglichen
Protokolle in der Tabelle gespeichert sind, sodass ein beliebiges
empfangenes Paket schließlich in
den nummerierten Modus oder den nicht-nummerierten Modus klassifiziert
werden kann. Aus Gründen
der Wirtschaftlichkeit ist es jedoch gleichermaßen möglich, einen ausfallsicheren
Mechanismus in den in 9a und 9b gezeigten
Prozess zu implementieren, z.B. einen Zähler in Schritt S24, der für eine vorbestimmten
Zahl von Malen nur eine Bewegung nach oben zu einer nächsten Protokollschicht erlaubt,
wobei das Überschreiten
der vorbestimmte Zahl von Malen zu einem Vorgabemodus führt, der dem
in Frage kommenden empfangenen Paket zugewiesen wird. Dieser Vorgabemodus
kann entweder der nummerierte oder der nicht-nummerierte Modus sein.
Natürlich
sind andere ausfallsichere Mechanismen möglich, und können auf
eine beliebige gewünschte
oder erforderliche Weise ausgewählt werden.
-
Zurückkehrend
zu 9b fährt
der Prozess nach Schritt S31 oder S32 zu Schritt S4 fort, in dem die
Pakete zu dem Ausgangspuffer weitergegeben werden, gerade wie in
dem Fall von 2. Der Prozess kehrt dann zu
Schritt S1 zurück,
um auf das nächste
Paket einer höheren
Schicht zu warten, das zu empfangen ist.
-
Auf
eine allgemeine Weise verkörpert
das Verfahren von 9 ein System, in
dem die Datenpakete eine oder mehr Sektionen haben, die Information über den
Inhalt des Paketes tragen (z.B. ein Paket, das eine Hierarchie von
Protokollen kapselt), und das Diskrimininatormittel angeordnet ist,
die eine oder mehr Sektionen zu analysieren, um dadurch die Datenpakete
in Übereinstimmung
mit ihrem Inhalt zu unterscheiden. Genauer sind die eine oder mehr Sektionen
Paketheader, die mit jeweiligen Protokollschichten in Verbindung
stehen und Protokollidentifikationsinformation enthalten, die das
Protokoll identifiziert, mit dem der Inhalt des Paketes in Verbindung steht.
Die Paketheader bilden eine Hierarchie in Übereinstimmung mit den Protokollschichten,
und für ein
Paket, das zu unterscheiden ist, ist der Diskrimininator angeordnet,
zuerst die Protokollidentifikation in dem Header, der mit dem ersten
Protokoll einer höheren
Schicht in Verbindung steht, zu bestimmen und dann die Protokollidentifikation
mit gespeicherten Regeln, die einen vorbestimmten Übertragungszuverlässigkeitsmodus
zuordnen, mit vorbestimmten Protokollidentifikationen zu vergleichen.
Des weiteren ist der Diskrimininator angeordnet, den Übertragungszuverlässigkeitsmodus
für das
Paket, das zu unterscheiden ist, in Übereinstimmung mit einer bestimmten
Zuordnung einzustellen, falls die Protokollidentifikation unter
den gespeicherten Regeln ist, und falls die Protokollidentifikation
nicht unter den gespeicherten Regeln ist, dann die Protokollidentifikation
in dem Header zu bestimmen, der mit dem nächsten Protokoll eine Schicht
nach oben in der Hierarchie in Verbindung steht, und dann die Pro tokollinformation des
nächsten
Protokolls mit den gespeicherten Regeln zu vergleichen, die einen
vorbestimmten Übertragungszuverlässigkeitsmodus
zuordnen, wobei der Prozess zum Bestimmen und Vergleichen wiederholt wird,
bis entweder eine bestimmte Protokollidentifikation in dem Paket,
das zu unterscheiden ist, einem vorbestimmten Übertragungszuverlässigkeitsmodus gemäß einer
der Regeln zugeordnet ist, in welchem Fall der Übertragungszuverlässigkeitsmodus
für das Paket,
das zu unterscheiden ist, eingestellt wird, oder eine Ausfallsicherheitsbedingung
erfüllt
ist, in welchem Fall ein Vorgabeübertragungszuverlässigkeitsmodus
für das
Paket, das zu unterscheiden ist, eingestellt wird.
-
Vorzugsweise
wird die vorliegende Erfindung auf die Implementierung von Protokollen
angewendet, die Segmentierung zum Einbetten von Paketen einer höheren Schicht
in die Pakete verwenden, die über
eine Verknüpfung
zu senden sind, und die Protokolle zwei Übertragungszuverlässigkeitsmodi
unterstützen,
nämlich
einen nummerierten Modus und einen nicht-nummerierten Modus. Beispiele
derartiger Protokolle sind Protokolle zur Behandlung von Kommunikation über Funkverknüpfungen,
wie etwa die oben erwähnten
RLP und RLC.
-
Die
Anwendung der vorliegenden Erfindung auf derartige Protokolle geschieht
vorzugsweise in Übereinstimmung
mit den Ausführungsformen,
die in 8 und 9 gezeigt werden.
-
Vorzugsweise
hat die Erfindung in einem derartigen Fall nicht nur spezifische
Merkmale zum Einbetten von zu sendenden Paketen, sondern umfasst
auch spezifische Merkmale in Bezug auf den Empfang derartiger eingebetteter
Verknüpfungsschichtprotokolle
von einem sendenden Peer, d.h. Merkmale, die sich auf die Implementierungseigenschaften
als ein empfangender Peer beziehen.
-
Im
folgenden wird eine Zahl von grundlegenden Mechanismen für einen
Peer eines Verknüpfungsschichtprotokolls,
der sowohl als ein Sender als auch als ein Empfänger agiert, mit der Hilfe
eines Beispiels erläutert,
das RLP als ein Verknüpfungsschichtprotokoll
verwendet, das PPP-Rahmen mittels Segmentierung einbettet. Es sollte
jedoch vermerkt werden, dass diese Protokolle nur Beispiele für den Zweck
der Erläuterung
sind, derart, dass die beschriebenen Mechanismen mit einem beliebigen
anderen geeigneten Protokoll umgesetzt werden können.
-
Gemäß einem
grundlegenden Mechanismus analysiert der RLP-Sender den Datenstrom,
der zu ihm von einer höheren
Schicht weitergegeben wird, z.B. die PPP-Rahmen, um zu bestimmen,
in welchem Modus jeder Rahmen einer höheren Schicht zu senden ist,
d.h. in dem nummerierten Modus oder dem nicht-nummerierten Modus.
Dieser Prozess wird durchgeführt,
wie in Verbindung mit 8 und 9 beschrieben
wird, derart, dass eine Wiederholung hier nicht notwendig ist. Die
Flusssteuerung von Paketen von dem Ausgangspuffer wird derart durchgeführt, dass
RLP-Pakete in dem nummerierten Modus und dem nicht-nummerierten
Modus auf einer FIFO-Basis mit Bezug auf das erste Senden (von Paketen
im nummerierten Modus, da Pakete in nicht-nummerierten Modus stets
nur einmal gesendet werden) ausgesendet werden, aber RLP-Pakete
des nummerierten Modus, die erneut zu übertragen sind, eine höhere Priorität haben
und deshalb stets so bald wie möglich gesendet
werden.
-
Der
RLP-Empfänger
trennt die Pakete des nicht-nummerierten Modus und des nummerierten Modus
in jeweilige und verschiedene Puffer oder mindestens verschiedene
Schlangen. Wie der RLP-Sender analysiert der RLP-Empfänger stets
die Daten in jedem Puffer, um dadurch Rahmen einer höheren Schicht
zu unterscheiden. Nur sobald ein vollständiger Rahmen einer höheren Schicht
empfangen wurde, wird er zu der höheren Schicht auf der empfangenden
Seite freigegeben. Es kann ein Problem für Pakete auftreten, die in
dem nicht-nummerierten Modus gesendet werden, da in derartigen Paketen der
Begrenzer (z.B. ein Start- oder Endflag) für das Paket einer höheren Schicht
während
der Übertragung
beschädigt
werden kann, da keine Neuübertragung
stattfindet. Für
diesen Fall ist der RLP-Empfänger
angepasst, eine fixierte Puffergrenze für Pakete des nicht-nummerierten
Modus einzusetzen, über
die hinaus Pakete des nicht-nummerierten Modus zu der nächsten höheren Schicht
ungeachtet dessen freigegeben werden, ob ein Begrenzer empfangen
wurde oder nicht. Nachdem die fixierte Puffergrenze überschritten
ist, wird der RLP-Empfänger
genauer jedes RLP-Paket
des nicht-nummerierten Modus zu der nächsten höheren Schicht freigeben, bis
ein anderer Paketbegrenzer einer höheren Schicht erfasst wurde.
Unter Verwendung des Paketbegrenzers einer höheren Schicht als einen neuen
Startpunkt kann der RLP-Empfänger
dann erneut auf den nächsten
Paketbegrenzer einer höheren
Schicht warten, d.h. bis das nächste
vollständige
Paket einer höheren Schicht
empfangen wurde.
-
Ein
anderer Mechanismus, um dem RLP-Empfänger zu ermöglichen, die einzelnen Pakete
einer höheren
Schicht zu unterscheiden, besteht darin, den RLP-Sender jeden Begrenzer
einer höheren
Schicht zu duplizieren, den er in den Daten erfasst, die er aussendet.
Mit anderen Worten wird der RLP-Sender zusätzlich zum Unterscheiden der
Daten in Übereinstimmung
mit ihrem Inhalt auch nach den Begrenzern der nächsten höheren Schicht schauen, z.B.
PPP, und wird stets einen identischen Begrenzer als Nächstes zu
jedem Begrenzer einfügen,
den er erfasst. Es ist vorteilhaft, falls der oben erwähnte Prozess
als Reaktion auf eine fixierte Puffergrenze, die überschritten
wird, in den Empfangsmerkmalen der RLP-Implementierung gehalten
wird, d.h. falls das Merkmal von Begrenzerduplizierung durch die
Implementierung des Senders mit dem Puffergrenzmerkmal in Bezug
auf die Implementierung des Senders kombiniert wird.
-
Nun
wird ein anderer Mechanismus in Bezug auf sowohl die Sende- als
auch Empfangsmerkmale einer RLP-Implementierung erörtert. Die
Sendermerkmale sind erneut, wie oben beschrieben, der Sender analysiert
nämlich
den Datenstrom, den er empfängt,
um zu bestimmen, in welchem Modus jeder Rahmen einer höheren Schicht
zu senden ist, d.h. in dem nummerierten Modus oder dem nicht-nummerierten
Modus. Flusssteuerung von dem Ausgangspuffer wird auf eine derartige
Weise durchgeführt,
dass erneut übertragene
Pakete im nummerierten Modus stets eine höhere Priorität haben.
Bezüglich
der Empfangsmerkmale der RLP-Implementierung ist der Empfänger in
der Lage, die Pakete im nummerierten Modus und im nicht-nummerierten Modus,
die er empfängt,
in verschiedene Puffer oder Schlangen zu trennen, gerade wie in
dem zuvor erläuterten
Fall. Nun analysiert der Empfänger
nur Pakete im nummerierten Modus, um Pakete einer höheren Schicht
zu unterscheiden (z.B. PPP-Rahmen). Im allgemeinen gibt der Empfänger Pakete
im nummerierten Modus und im nicht-nummerierten Modus unverzüglich zu
der höheren
Schicht frei, mit der gewöhnlichen
Einschränkung,
dass Daten im nummerierten Modus nur in der richtigen Reihenfolge
freigegeben werden können.
Mit anderen Worten bedeutet dies, dass der Empfangspuffer die empfangenen
Pakete gewöhnlich
nicht halten wird, sondern sie vielmehr unverzüglich freigegeben wird, mit
Ausnahme von Paketen im nummerierten Modus, für die Neuübertragung stattfindet, da
dann ein gewisser Umfang dieser nummerierten Pakete zu puffern ist,
da sie nur in der richtigen Reihenfolge zu der höheren Schicht freigegeben werden
können.
Eine andere Ausnahme wird im folgenden erläutert.
-
Mit
dieser Regel hinsichtlich dessen, wie der Empfänger Pakete zu der höheren Schicht
auf seiner Seite freigibt, können
vier Fälle
unterschieden werden:
- (a) es werden nur Pakete
im nicht-nummerierten Modus übertragen
(z.B. sendet der Sender nur UDP-Pakete, was als eine UDP-Sitzung bezeichnet
werden kann), wo in diesem Fall kein Problem auftritt;
- (b) es werden nur Pakete im nummerierten Modus übertragen
(z.B. sendet der Sender nur TCP-Pakete, was auch als eine TCP-Sitzung
bezeichnet werden kann), wo erneut kein Problem auftritt;
- (c) es werden Pakete im nicht-nummerierten Modus gefolgt durch
Pakete im nummerierten Modus übertragen
(z.B. eine UDP-Sitzung,
gefolgt durch eine TCP-Sitzung), wo erneut kein Problem auftritt;
und
- (d) es werden Pakete im nummerierten Modus gefolgt durch Pakete
im nicht-nummerierten Modus übertragen
(z.B. eine TCP-Sitzung,
gefolgt durch eine UDP-Sitzung, oder eine UDP- und TCP-Sitzung,
die parallel laufen), wo ein Problem auftreten kann, falls Pakete
im nummerierten Modus erneut übertragen
werden müssen
und Pakete im nicht-nummerierten Modus in der Zwischenzeit empfangen
werden.
-
Um
dieses Problem von Fall (d) zu lösen, kann
der folgende Mechanismus verwendet werden. Solange wie das Paket
einer höheren
Schicht, das in dem nummerierten Modus gesendet wurde, nicht vollständig empfangen
wurde (z.B, weil das Paket, das den PPP-Rahmen-Begrenzer enthält, der
das Ende eines TCP-Paketes markiert, erneut übertragen werden muss), müssen die
Pakete im nicht-nummerierten Modus gepuffert werden. Der Puffer
wird zu der höheren
Schicht nicht freigegeben, bevor nicht das gesamte Paket im nummerierten
Modus empfangen und freigegeben wurde. Nachdem das Paket im nummerierten
Modus vollständig
empfangen und zu der nächsten
höheren
Schicht freigegeben wurde, wird der Inhalt des Puffers, der Pakete
im nicht-nummerierten Modus enthält,
freigegeben. Dann wird die normale Operation fortgesetzt.
-
Gemäß einer
bevorzugten Ausführungsform des
oben erwähnten
Mechanismus hat der Empfänger
zusätzlich
Wissen oder Information darüber,
welcher Paketbegrenzer verwendet wird. Der Vorgabebegrenzer sollte
der Begrenzer der gewöhnlichen Pakete
der nächsten
höheren
Schicht sein (z.B. der PPP-Rahmen-Begrenzer), falls aber ein anderer
Begrenzer verwendet werden soll, kann dies zwischen den zwei Verknüpfungsschichtentitäten, d.h.
den zwei RLP-Peers, verhandelt werden. Dies bedeutet mit anderen
Worten, dass andere Protokollpakete der nächsten höheren Schicht verarbeitet werden könnten, d.h.
jene von mehr als einem Protokoll. In dem Kontext des obigen Beispiels
in Bezug auf PPP-Rahmen, die in RLP-Paketen eingebettet sind, bedeutet
dies, dass die RLP-Implementierung dann nicht nur PPP-Rahmen, sondern
auch ebenso Rahmen anderer Protokolle einbetten könnte, wobei
die anderen Protokolle zu der gleichen Schicht wie PPP gehören. Es
gibt eine Vielfalt von Möglichkeiten,
wie der Empfänger
diese Information erhalten kann. In dem Fall von Verknüpfungsschichtprotokollen
basierend auf HDLC (wie etwa GSM RLP), die einen speziellen Signalisierungsrahmen
oder XID-Rahmen verwenden, der ein Standard-HDLC-Rahmen für Verknüpfungsparameterverhandlung
ist, kann der XID-Rahmen mit einem neuen Parameter verwendet werden.
-
Es
wird nun ein anderer Mechanismus beschrieben, der sich nur auf die
Sendemerkmale bezieht. Mit anderen Worten wird die Empfängerimplementierung
auf keine Weise geändert.
Somit wird der Empfänger
stets Pakete im nicht-nummerierten Modus freigegeben, wenn empfangen,
und die Abgabe von Paketen im nummerierten Modus wird wie gewöhnlich in
der Reihenfolge freigegeben. Deshalb ist es an dem Sender sicherzustellen,
dass die Pakete einer höheren
Schicht (z.B. PPP-Rahmen) in dem Empfänger richtig freigegeben werden.
Dies kann auf eine derartige Weise geschehen, dass bevor der Sender
eine Sitzung im nicht-nummerierten
Modus beginnt, nicht erlaubt ist, dass ein unbestätigtes Paket
im nummerierten Modus aussteht, d.h. alle Pakete im nummerierten
Modus müssen
durch den Empfänger
bestätigt
sein. Obwohl dieser Mechanismus einfacher zu implementieren ist,
da er die Empfangsmerkmale nicht ändert, führt er zu einer zusätzlichen Verzögerung,
die eingeführt
wird, wenn zwischen einer Sitzung im nummerierten Modus und einer
Sitzung im nicht-nummerierten Modus umgeschaltet wird.
-
Schließlich könnte ein
anderer Mechanismus in einer Steuerung des Ausgangspuffers des Senders
auf eine derartige Weise bestehen, dass wenn eine Sitzung im nicht-nummerierten
Modus durch den Sender betrieben wird, alle zu sendenden Pakete
im nicht-nummerierten Modus in aufeinanderfolgenden RLP-Rahmen gesendet
werden sollten, die das nicht-nummerierte Flag tragen.
-
Wie
bereits zuvor erwähnt,
wurden die oben beschriebenen Mechanismen durch Verwenden von RLP
und PPP als bevorzugte Beispiele erläutert, aber diese Mechanismen
sind natürlich
nicht auf diese Protokolle beschränkt. Vielmehr können sie
für beliebige
Protokolle mit den geeigneten Merkmalen implementiert werden.
-
In
den obigen Ausführungsformen
wurde die Erfindung hinsichtlich Unterscheidung mit Bezug auf ein
spezifisches Feld in dem Paketheader eines Paketes, das eingebettet
wird, nämlich
das Protokoll-ID-Feld von höheren
Schichten, und mit Bezug auf das spezifische Übertragungsschema von ARQ-basierter
Fehlerwiederherstellung beschrieben, unter Verwendung der zwei Betriebsmodi
in Bezug auf Zuverlässigkeit,
nämlich
den nummerierten Modus und den nicht-nummerierten Modus. Die Erfindung
ist keineswegs darauf beschränkt.
-
Vielmehr
kann die Erfindung gleichermaßen gut
auf Unterscheidung mit Bezug auf beliebigen Paketinhalt in einem
beliebigen Teil eines Paketes angewendet werden, wie etwa auch das
oben erwähnte DS-Feld
oder IP-Option. Hinsichtlich der Betriebsmodi, die mit ARQ in Verbindung
stehen, können
natürlich
mehr als zwei eingesetzt werden, wie etwa z.B. die bereits erwähnten nummerierten
und nicht-nummerierten Modi, ergänzt
durch einen gemischten Modus.
-
Die
vorliegende Erfindung ist auch mit Bezug auf das Übertragungsschema
von ARQ, d.h. Fehlerwiederherstellung, nicht eingeschränkt, sondern kann
auch auf beliebige Betriebsmodi angewendet werden, die mit einem
beliebigen Typ von Vorwärtsfehlerkorrektur
in Verbindung stehen. Genauer ist die vorliegende Erfindung auf
alle Übertragungsschemata
anwendbar, die mindestens zwei unterschiedliche Betriebsmodi haben,
wie etwa das Übertragungsschema
von FCS-basierter Fehlererfassung (FCS = Rahmenprüfungssequenz)
mit den Betriebsmodi von z.B. dem Empfänger, der fehlerhafte Rahmen
verwirft, dem Empfänger,
der fehlerhafte Rahmen markiert, aber nicht verwirft, und dem Empfänger, der
fehlerhafte Rahmen weder markiert noch verwirft, wobei die Unterscheidungsoperation
natürlich
angesichts von beliebigen zwei der Modi oder allen drei durchgeführt werden
kann. Oder die Erfindung ist auf das Übertragungsschema von FEC-basierter
Fehlerkorrektur (FEC = Vorwärtsfehlersteuerung)
mit den Betriebsmodi von z.B. einer Verwendung von einem von zwei
oder mehr FEC-Schemata anwendbar. Oder die Erfindung ist auf das Übertragungsschema
von verschachtelungsbasierter Fehlerverhinderung mit den Betriebsmodi
von z.B. einer Verwendung von einem von zwei oder mehr Verschachtelungsschemata
anwendbar. Oder die Erfindung ist auf das Übertragungsschema von Leistungssteuerung
mit den Betriebsmodi von z.B. einer Verwendung von einem von zwei
oder mehr Leistungspegeln anwendbar. Oder die Erfindung ist auf das Übertragungsschema
spreizungsbasierter Fehlerverhin derung (in Spreizspektrum-Technologien, wie
etwa CDMA) mit den Betriebsmodi von z.B. einer Verwendung von einem
von zwei oder mehr Spreizfaktoren anwendbar. Oder die Erfindung
ist auf das Übertragungsschema
von Rahmenlängensteuerung mit
den Betriebsmodi einer Verwendung von z.B. einer von zwei oder mehr
möglichen
Rahmenlängen anwendbar.
Oder die Erfindung ist auf das Übertragungsschema
von Bandbreitenreservierungssteuerung mit den geeigneten Betriebsmodi
anwendbar, wie etwa der Zuordnung von 1, 2, 3, ... oder 8 Zeitschlitzen
z.B. in dem GPRS-Kommunikationsstandard.
-
Natürlich können alle
diese Übertragungsschemata
und Betriebsmodi auf eine beliebige und geeignete Weise kombiniert
werden. Dies bedeutet, dass die Unterscheidung angesichts verallgemeinerter
Betriebsmodi durchgeführt
werden kann, die z.B. aus einer Kombination von ARQ-bezogenem Modus und
leistungssteuerungsbezogenem Modus bestehen können, wie etwa z.B. dem nummerierten
Modus, dem nicht-nummerierten Modus und 4 Leistungspegeln kombiniert
werden, um 8 Modi zu erreichen, d.h. (I-Modus, Leistungspegel 1),
(I-Modus, Leistungspegel 2), ..., (UI-Modus, Leistungspegel 4). Wie
bereits erwähnt,
sind beliebige Kombinationen möglich,
wie es für
die spezielle Anwendung am besten geeignet ist.
-
Nun
wird eine weitere bevorzugte Ausführungsform der Erfindung in
Verbindung mit 10 beschrieben. Gemäß dieser
bevorzugten Ausführungsform
wird die vorliegende Erfindung angewendet, um einen Weg zum Übertragen
von Paketen auf einer unteren Schicht in Übereinstimmung mit Übertragungsqualitätsanforderungen
vorzusehen, wie etwa QoS- (Dienstgüte) Anforderungen und/oder Übertragungsprioritäten, die
durch Peers einer höheren
Schicht spezifiziert werden, wobei die Pakete oder Dateneinheiten
der höheren
Schicht in der unteren Schicht eingebettet sind.
-
In
der folgenden Beschreibung wird der Begriff L3 verwendet, um auf
ein Netzschichtprotokoll zu verweisen, z.B. IPv4 oder IPv6, siehe
auch 3. Die L3-Protokolldateneinheit (PDU, protocol
data unit) wird als ein Paket bezeichnet, und der PDU-Header als
ein Paketheader. Der Begriff L1/L2 wird verwendet, um auf ein Protokoll
oder eine Menge von zwei oder mehr Protokollen unter L3 zu verweisen,
wie etwa die physische und/oder die Verknüpfungsschicht eines spezifischen
Netzes, siehe wiederum 3. Der Begriff Träger (bearer)
wird für ein
L1/L2 verwendet mit entweder fixierten Einstellungen für alle L1/L2-Betriebsmodi
oder fixierten QoS- (Dienstgüte)
Einstellungen, zu denen alle L1/L2-Betriebsmodi dynamisch abhängig von
den momentanen Bedingungen des Mediums, das L1/L2 zugrunde liegt
(z.B. Funk), angepasst werden. Der Begriff Peers wird wie oben verwendet,
d.h. wie in Bezug auf Prozesse, die gemäß einem gemeinsamen Protokoll
einer gewissen Schicht kommunizieren. Beispiele sind ein WWW-Client
und Server, die gemäß dem HTTP-Protokoll
auf der Anwendungsschicht kommunizieren, oder ein TCP-Sender und Empfänger auf
der Transportschicht, siehe auch 6. In dem
folgenden Kontext wird der Begriff Peer stets auf Peers verweisen,
die gemäß Protokollen
kommunizieren, die direkt oder indirekt auf L3 basieren. Der Begriff
Fluss wird auf eine einzelne Instanz von Peer-zu-Peer L3-Paket-basiertem
(paketvermittelten) Verkehr verweisen, der durch eine Quellenadresse,
einen Quellenport, eine Zieladresse, einen Zielport und einen Protokoll-ID
identifiziert wird. Mit anderen Worten ist ein Fluss ein eindeutig identifizierbarer
Strom von Paketen. Jeder Fluss wird betrachtet, gewisse QoS-Anforderungen
zu haben. QoS-Anforderungen können
mit der Zeit variieren.
-
Es
kann vermerkt werden, dass wenn gesagt wird, dass ein Peer (z.B.
ein veralteter WWW-Browser (Legacy-WWW-Browser)) die QoS-Anforderungen
für seinen
Fluss auswählt,
dies auch um fasst, dass ein beliebiger anderer Prozess dies im Namen des
Peers tut.
-
10 zeigt
eine Kommunikation zwischen einem mobilen IP-Host, der mit einem Mobiltelefon, das
angepasst ist, IP-Pakete zu transportieren, geeignet verknüpft ist
(in 10 über
eine sogenannte Bluetooth-Verknüpfung).
Das Telefon kann wiederum eine Funkverknüpfung mit einem drahtlosen
Zugangsnetz herstellen, wo ein beliebiger geeigneter Kommunikationsstandard
verwendet werden kann, wie etwa z.B. GSM, GPRS oder W-CDMA. Das drahtlose
Zugangsnetz ist mit dem Internet verbunden, das eine Vielheit von
Hosts umfasst, von denen zwei in 10 gezeigt
werden.
-
Der
untere Teil der Figur zeigt schematisch die Kommunikationssituation.
Peers A.1 und B.1 werden als Beispiele auf der mobilen Seite gezeigt,
und Peers A.2 und B.2 als ihre jeweiligen Gegenstücke. Diese
Peers können
QoS-Anforderungen und/oder Übertragungsprioritäten, d.h.
im allgemeinen Qualitätsanforderungen
als Steuerinformation, zu der L3-Schicht weitergeben. Die Peers
sind entweder L3-Peers oder von Protokollschichten über L3.
Dies kann durch Spezifizieren eines gegebenen Feldes in dem L3-Header
wie in Bezug auf Qualitätsanforderungen
derart geschehen, dass die L3-Schicht als eine Ebene verwendet wird,
durch die Peers ihre QoS-Anforderungen und/oder Prioritäten auf
einer Basis pro Fluss oder pro Paket ausdrücken.
-
Die
Unterscheidung von L3-Paketen wird durch eine Steuervorrichtung
oder einen Steuerprozess 11 auf jeder Seite von L1/L2 behandelt,
die/der wiederum einen Adapter oder Anpassungsprozess (Adaptionsprozess) 12 als
Reaktion auf das Unterscheidungsergebnis steuert. Der Steuerprozess 11 "liest" die QoS-Anforderungen
und/oder Prioritäten pro
Paket und bildet sie auf jeweilige L1/L2-Betriebsmodi und/oder Prioritäten dieses
Netzes ab. Der Anpassungsprozess 12 ist zum Anpassen der L1/L2-Betriebsmodi
auf einer Basis pro Paket fähig und
führt diese
Entscheidung mindestens teilweise abhängig von der Information durch,
die durch die Steuervorrichtung bereitgestellt wird. Typischerweise wird
die Anpassung der L1/L2-Betriebsmodi auch auf der Basis von gemessenen
Bedingungen des Mediums durchgeführt,
das L1/L2 zugrunde liegt.
-
Als
eine Folge umfasst die vorliegende Erfindung dynamisches Anpassen
von L1/L2, wobei L1/L2 auf einer Basis pro Paket anpassbar ist,
und mit einem Steuerprozess, der Zugang zu den QoS-Anforderungen
und/oder Prioritäten
pro Fluss/Paket hat und der jene verwenden kann, um den Anpassungsprozess
und/oder den/die L1/L2-Planer entsprechend zu steuern.
-
Als
ein Beispiel würde
die optimale Anpassung von L1/L2 für TCP ARQ-basierte Fehlerwiederherstellung
im I-Modus und anderen Übertragungsschemata,
z.B. FEC, verwenden, um für
höchsten Durchsatz
optimiert zu werden. Beim Lesen des Protokoll-ID-Feldes (was sagt, dass es ein TCP-Fluss ist)
in dem Paketheader kann die Steuervorrichtung die geeignete Entscheidung
treffen, z.B. für
einen durch ein Mobiltelefon terminierten TCP-Fluss. Die optimale
Anpassung für
einen Echtzeit-VoiceOverIP-Fluss
(z.B. Rundfunk, der nicht ein Sitzungsinitiierungsprotokoll haben
muss) würde
keine ARQ-basierte Fehlerwiederherstellung (UI-Modus) und andere Übertragungsschemata,
z.B. FEC, verwenden, um zu der Quellenübertragungsrate und dem geringsten Restfehler
optimiert zu werden. Beim Lesen des DS-Feldes in dem Paketheader
kann die Steuervorrichtung die geeignete Entscheidung treffen, z.B.
für einen
durch ein Mobiltelefon terminierten Echtzeit-VoiceOverIP-Fluss.
-
Die
oben beschriebene Ausführungsform löst ein Problem
bekannter L1/L2-Protokollimplementierungen. L1/L2 von Netzen vom
Stand der Technik (z.B. drahtlose Netze) müssen unter schiedliche Flüsse, jeder
mit potenziell unterschiedlichen QoS-Anforderungen, gleichzeitig
transportieren. L1/L2 von Netzen vom Stand der Technik können jedoch
nicht zu der Ebene herab angepasst werden, wo die QoS-Anforderungen
von einzelnen Flüssen exakt
erfüllt
werden, und auch nicht einen Schritt weiter herunter zu der Ebene
zum Erfüllen
der QoS-Anforderungen von einzelnen Paketen eines Flusses. Das letztere
könnte
z.B. für
Flüsse
erforderlich sein, die QoS-Anforderungen haben, die mit der Zeit
variieren, sodass unterschiedliche Pakete des gleichen Flusses unterschiedliche
QoS-Anforderungen haben. Stattdessen können Netze vom Stand der Technik
höchstens
nur einen oder mehr Träger
gleichzeitig unterstützen.
Der Weg, auf dem Flüsse
auf jene Träger
abgebildet werden, ist jedoch nicht direkt auf die QoS-Anforderungen
jener Flüsse
bezogen, sondern basiert auf Kriterien wie Prioritäten, die
z.B. Netzbetreibergebühren
pro Paket entsprechen (wie es z.B. in dem GPRS-Kommunikationssystem
geschieht). Das resultierende Problem besteht darin, dass entweder
die QoS-Anforderungen
einiger Flüsse/Pakete
nicht erfüllt
werden, oder die QoS-Anforderungen einiger Flüsse/Pakete erfüllt werden,
aber nur auf eine nicht-optimale Weise (z.B. ist das FEC-Schema,
das für
einen TCP-Fensterfluss ausgewählt
wird, zu stark, wobei eine geringere Bitrate vorgesehen wird, als
sie mit dem optimalen FEC-Schema vorgesehen werden könnte), oder
die QoS-Anforderungen einiger Flüsse/Pakete überschritten
werden, was verschwendeten Netzressourcen entspricht (z.B. Spektrum
oder Übertragungsleistung).
-
Es
sollte vermerkt werden, das die Anpassung von L1/L2 an die QoS-Anforderungen
von Flüssen
von dem Konzept von auf Priorität
basierter Verkehrsplanung unabhängig
ist. Zum Beispiel wird ein Echtzeit-Sprachstrom spezifische QoS-Anforderungen
unabhängig
davon haben, ob er der besten Anstrengung (besteffort) oder einer
beliebigen Art von vorhersagender QoS-Verkehrsklasse zugewiesen ist.
-
Die
vorliegende Ausführungsform
löst dieses Problem
durch dynamisches Anpassen von L1/L2 an die QoS-Anforderungen von
jedem Fluss oder Paket. Sie sieht die folgenden Funktionalitäten und
ihre Zusammenarbeit vor:
- – Funktionalität 1: ein
standardisiertes Schema, durch das die QoS-Anforderungen für einzelne Flüsse/Pakete
eindeutig spezifiziert werden können,
sodass die Semantik in einem beliebigen Netz die gleiche ist, das
dieses Schema unterstützt;
- – Funktionalität 2: ein
Anpassungsprozess, der L1/L2 gemäß Betriebsmodi
anpassen kann, die durch einen Steuerprozess vorgesehen werden. Die
Betriebsmodi können
entweder explizit oder implizit in einer Form vorgesehen werden,
die nur lokale Semantik hat, z.B. mit Bezug auf QoS, die für das Netz
dieser L1/L2 spezifisch sind. Der Anpassungsprozess kann die Betriebsmodi,
die durch den Steuerprozess vorgesehen werden, mit Messungsinformation über Bedingungen
des Mediums (z.B. Funk), das L1/L2 zugrunde liegt, kombinieren,
um schließlich über den
endgültigen
Betriebsmodus zu entscheiden. Dies ist jedoch nur ein Implementierungsdetail;
- – Funktionalität 3: ein
Steuerprozess, der zum Steuern des Anpassungsprozesses auf einer
Basis pro Fluss/Paket fähig
ist, in Anbetracht der QoS-Anforderungen von jedem Fluss/Paket, durch
Zugang zu dem Steuerkanal; und
- – Funktionalität 4: ein
Steuerkanal, durch den die QoS-Anforderungen pro Fluss/Paket dem
Steuerprozess verfügbar
gemacht werden können.
-
Es
kann vermerkt werden, dass die Anpassungs- und der Steuerprozess
jeder entweder verteilte Prozesse, z.B. ein Prozess pro L1/L2-Übertragungsschema,
oder ein einzelner Prozess, der alle L1/L2-Übertragungsschemata anpasst/steuert,
sein können.
Dies ist wiederum ein Implementierungsdetail. Es kann auch vermerkt
werden, dass die oben beschriebenen Funktionalitäten ein L1/L2 erfordern, das
auf einer Basis pro Paket oder mindestens auf einer Basis pro Paketsequenz
angepasst werden kann, z.B. muss es möglich sein, die FEC von einem Paket
zu dem anderen oder mindestens von einer Sequenz von Paketen zu
der anderen zu ändern.
-
In
Anbetracht dessen, was von dem Stand der Technik von RfC 2475 bekannt
ist, muss speziell vermerkt werden, dass RfC 2475 nicht auf dynamisches
Anpassen von L1/L2 hindeutet. Außerdem ist aus dem Stand der
Technik nicht bekannt, L1/L2 zu implementieren, um mit Bezug auf
QoS-Anforderungen von einzelnen Paketen/Flüssen (Funktionalität 2) anpassungsfähig zu sein,
und es ist nicht bekannt, den Steuerprozess von Funktionalität 3 bereitzustellen.
-
Unter
Verwendung der Kommunikationssysteme von GSM-CSD oder GPRS als Beispiele
von Netzen vom Stand der Technik kann eine Reihe von Szenarien gegeben
werden um zu zeigen, dass beiden Netzen Funktionalitäten fehlen,
um Anpassung pro Fluss/Paket zu unterstützen.
-
Die
Anordnung von Peers A.1, B.1, A.2 und B.2 von 10 als
ein Beispiel nehmend (d.h. ohne die Merkmale der Erfindung), dann
haben Peers in einem konventionellen Netz, die (z.B. A.1 und B.1)
zu L1/L2 in GSM-CSD und GPRS physisch nahe sind, einen direkten
Steuerkanal, um dieses L1/L2 gemäß QoS anzupassen,
die diesem Peer explizit bekannt sind (oder ein Prozess, der in
seinem Namen agiert). Z.B. könnten
Peers A.1 und B.1 Zugang zu einem AT-Befehlsinterpreter haben, durch
den gewählt
werden kann, ein zuverlässiges
Verknüpfungsschichtprotokoll
(RLP) zu betreiben oder es nicht zu tun (transparenter oder nicht-transparenter
Modus). Verwendung von RLP wäre
z.B.
-
für einen
TCP-Fluss optimal. Andererseits hätten Peers A.2 und B.2 keine
Möglichkeit
zum Anpassen unterschiedlicher L1/L2s für einen TCP-Fluss, den sie
initiieren. Es gibt auch keinen Steuerprozess (Funktionalität 3), der
die Anpassung im Namen von Peer A.2 und/oder B.2 durchführen könnte.
-
GSM-CSD
ist nur zum Arbeiten gemäß festen
Modi (z.B. FEC-Schema
x und I-Modus-Fehlerwiederherstellung) für die Dauer des schaltungsvermittelten
Rufes fähig,
obwohl mehrere Flüsse
mit potenziell unterschiedlichen QoS-Anforderungen gleichzeitig
transportiert werden können
müssen.
-
Es
sollte vermerkt werden, dass obwohl die Erfindung mit Bezug auf
spezifische Ausführungsformen
beschrieben wurde, dies nicht als die Erfindung auf diese Ausführungsformen
beschränkend
gesehen werden sollte, da diese zum Zweck von Klarheit und Vollständigkeit
präsentiert
wurden, aber die Erfindung als durch die angefügten Ansprüche definiert zu sehen ist.
Bezugszeichen in den Ansprüchen
dienen dazu, die Ansprüche
leichter verständlich
zu machen und begrenzen den Bereich nicht.