-
Die
Erfindung betrifft ein Verfahren zur Übertragung von Daten in einem
Datennetz sowie eine entsprechende Vorrichtung zur Verarbeitung
von Daten und ein entsprechendes Datennetz.
-
Bei
der Übertragung
von Multimediadaten in einem Datennetz tritt das Problem auf, dass
die Daten üblicherweise über mehrere
Netze hinweg transportiert werden und somit nicht vorhersagbare Schwankungen
in der zur Verfügung
stehenden Bandbreite der Netze auftreten. Dies gilt insbesondere
bei der Übertragung über drahtlose
Netze, wie z.B. UMTS (UMTS = Universal Mobile Telecommunication
Service), GPRS (GPRS = General Package Radio Service) sowie WLAN
(WLAN = Wireless Local Area Network). Bei den entscheidenden Netzübergängen, insbesondere
bei einem Übergang
von einem drahtgebundenen zu einem drahtlosen Netz, ist eine Anpassung
der Datenströme
mittels eines Netzwerkknotens, wie z.B. einem Gateway-Server oder
einem Proxy-Server, wünschenswert,
um Überlastsituationen
und daraus resultierende Datenpaketverluste zu vermeiden.
-
Aus
dem Stand der Technik sind verschiedene Lösungen zur Anpassung von Multimediaströmen an Bandbreitenschwankungen
bekannt. In einer ersten Lösung
wird von dem Server, der die Multimediadaten zur Verfügung stellt,
die Qualität
des Datenstroms überwacht,
und im Falle von Paketverlusten wird die Datenrate entsprechend
angepasst. Der Nachteil dieser Lösung
liegt in einer hohen Reaktionszeit, da der Server oft sehr weit
entfernt von den Netzpunkten ist, an denen die Bandbreitenschwankungen
auftreten.
-
Als
zweite Lösung
werden im Stand der Technik sog. TOS-Bytes (TOS = Type of Service) oder
DS-Bytes (DS = Differentiated Service) in der IP-Schicht der Datenpakete
verwendet, wobei mit Hilfe dieser Bytes verschiedene Prioritäten der
Pakete markiert werden. Hierdurch ist beispielsweise ein Gateway-Server in der Lage,
unwichtige Pakete zu erkennen und notfalls zu verwerfen, um die
Datenrate anzupassen. Der Nachteil dieser Lösung besteht darin, dass die
Bytes von allen Netzwerkrechnern auf dem Weg vom Server zum Client
modifiziert werden können
und somit keine Garantie auf einen unverfälschten Empfang beim Gateway-Server
gegeben ist.
-
Gemäß einer
dritten Alternative wird im Stand der Technik vorgeschlagen, die
sog. RTP-Verbindung (RTP = Real Time Protocol) durch einen sog. Application-Layer-Gateway
zu überwachen.
Aus der RTP-Payload der RTP-Pakete lässt sich die Priorität der Datenpakete
erkennen und es können
entsprechende Maßnahmen
daraus abgeleitet werden. Nachteilig ist hierbei, dass diese Vorgehensweise sehr
aufwändig
ist, da die gesamte Verbindung, insbesondere deren Aufbau und deren
Veränderung, überwacht
werden muss, um die RTP-Pakete interpretieren zu können.
-
Aufgabe
der Erfindung ist es deshalb, ein Verfahren zur Übertragung von Daten in einem
Datennetz bereitzustellen, welches einfach und effizient eine Anpassung
der Datenrate bei Bandbreitenschwankungen gewährleistet.
-
Diese
Aufgabe wird durch die unabhängigen Patentansprüche gelöst. Weiterbildungen
der Erfindungen sind in den abhängigen
Ansprüchen
definiert.
-
Bei
dem erfindungsgemäßen Verfahren
werden die Daten mittels mehrerer Schichten übertragen, wobei die Schichten
eine Transportschicht und eine Mehrzahl oberer Schichten oberhalb
der Transportschicht sowie eine Mehrzahl unterer Schichten unterhalb
der Transportschicht umfassen. Die Datenübertragung über Schichten bezeiht sich
hierbei auf das dem Fachmann hinlänglich bekannte OSI-Referenzmodell
(OSI = Open System Interconnection). Das erfindungsgemäße Verfahren
zeichnet sich dadurch aus, dass die Transportschicht Informationen aus
den oberen Schichten enthält.
Hierdurch wird erreicht, dass durch die Transportschicht, welche
für einen
Netzrechner, insbesondere für
einen Gateway-Rechner, problemlos lesbar und interpretierbar ist,
Informationen bereitgestellt werden, welche aus höheren Schichten
stammen und somit Spezifikationen hinsichtlich der ablaufenden Applikation
und der aufgebauten Sitzung enthalten. Mit Hilfe dieser Informationen
kann ein Gateway-Server die einzelnen Pakete priorisieren und effektiv
die Datenrate durch Verwerfen von Daten gemäß einer vorgegebenen Reihenfolge
steuern.
-
In
einer besonders bevorzugten Ausführungsform
der Erfindung stammen die Informationen aus den oberen Schichten
aus einer Applikationsschicht und/oder einer Session-Schicht. In
einer weiteren bevorzugten Ausführungsform
umfassen die Informationen aus den oberen Schichten Informationen
betreffend die Applikation, für
welche die übertragenen
Daten vorgesehen sind. Hierdurch kann ein Gateway-Server insbesondere
entscheiden, inwieweit das Verwerfen von Datenpaketen für die Applikation
problematisch sein könnte.
-
In
einer besonders bevorzugten Ausführungsform
der Erfindung enthalten die Informationen aus den oberen Schichten
ein Prioritätsmaß für die übertragenen
Daten. Vorzugsweise umfassen hierbei die übertragenen Daten codierte
Daten und das Prioritätsmaß legt fest,
wie wichtig die Daten für
eine ordnungsgemäße Decodierung
sind. Besonders vorteilhaft ist die Verwendung des Prioritätsmaßes bei
der Übertragung
von codierten digitalisierten Bildern, wobei mit dem Prioritätsmaß in einem
solchen Fall vorzugsweise die gegenseitigen Abhängigkeiten der codierten Bilder
spezifiziert werden. Hier kann insbesondere festgelegt werden, wie
die einzelnen Bilder voneinander abhängen, d.h. welche vorangegangenen
Bilder eines zu decodierenden Bildes benötigt werden, um eine ordnungsgemäße Decodierung
zu ermöglichen.
-
In
einer besonders bevorzugten Ausführungsform
wird bei der Datenübertragung
in den oberen Schichten das RTP-Protokoll eingesetzt. Dieses Protokoll
ist hinlänglich
aus dem Stand der Technik bekannt und wird insbesondere zur Übertragung
von Multimediadaten eingesetzt.
-
In
einer weiteren besonders bevorzugten Ausgestaltung der Erfindung
wird in der Transportschicht das DCCP-Protokoll (DCCP = Datagram Congestion
Control Protocol) eingesetzt, welches derzeit von der IETF standardisiert
wird. Wird dieses Protokoll verwendet, sind die Informationen aus
den oberen Schichten insbesondere in dem CCval-Feld des generischen
Headers der im DCCP-Protokoll übertragenen
Daten enthalten. Die Informationen aus den oberen Schichten können jedoch
alternativ auch in dem Options-Feld des speziellen Header der im
DCCP-Protokoll übertragenen
Daten enthalten sein.
-
Neben
dem oben beschriebenen Verfahren zur Übertragung von Daten betrifft
die Erfindung ferner eine Vorrichtung zur Verarbeitung von mit dem
erfindungsgemäßen Verfahren übertragenen
Daten, wobei die Vorrichtung eine Prozessoreinheit umfasst, mit
der aus den in der Transportschicht übertragenen Daten Informationen
aus den oberen Schichten auslesbar und verarbeitbar sind. Die Vorrichtung
ist vorzugsweise ein Netzwerkrechner, insbesondere ein Gateway-Server
und/oder ein Proxy-Server.
-
Die
Erfindung betrifft ferner ein Datennetz, welches die oben erwähnte Vorrichtung
zur Verarbeitung von Daten umfasst. Das Datennetz ist hierbei insbesondere
ein UMTS-Netz und/oder ein IP-Netz.
-
Ausführungsbeispiele
der Erfindung werden nachfolgend detailliert anhand der beigefügten Zeichnungen
beschrieben.
-
Es
zeigen:
-
1 den Schichtaufbau des
OSI-Modells;
-
2 den schematischen Aufbau
eines Datennetzes, in dem das erfindungsgemäße Verfahren eingesetzt wird;
-
3 den Aufbau eines Headers
im DCCP-Protokolls; und
-
4 den Aufbau des generischen
Anteils des Headers der 3.
-
1 zeigt den Aufbau der Schichten
im OSI-Referenzmodell, welches dem Fachmann hinlänglich bekannt ist und mit
dem heutzutage die Datenübertragung
in Netzen beschrieben wird.
-
Die
unterste Schicht des Modells ist die physikalische Schicht PHYS, über welche
die Übertragung
der Datenbits erfolgt. Oberhalb dieser Schicht liegt der Data-Link-Layer
LINK, der geeignete Kontroll- und Fehlerbehebungsmechanismen für die Datenströme bereitstellt.
An die Schicht LINK schließt sich
der Network-Layer NET an, in dem die Route ausgewählt wird, über welche
die Daten geleitet werden. Die Schicht NET verwendet beispielsweise
das IP-Protokoll (IP = Internet Protocol). An die Schicht NET schließt sich
die Transportschicht TRANS an, welche heutzutage üblicherweise
die bekannten Transportprotokolle TCP/UDP verwendet (TCP = Transport
Control Protocol; UDP = User Datagram Protocol). In der Schicht
TRANS werden die Daten beispielsweise in Pakete geeigneter Größe segmentiert.
Die über
der Transportschicht liegende Sitzungs-Schicht SESSION dient zur
Synchronisation der Kommunikation im Datennetz. An die Session-Schicht
schließt
sich eine Darstellungsschicht PRES an, und es folgt schließlich als
oberste Schicht die Applikationsschicht APPL, auf der die eigentlichen
Anwendungen ablaufen. Auf den Schichten, die oberhalb der Transportschicht
liegen, wird häufig
das RTP-Protokoll (RTP = Real Time Protocol) eingesetzt, welches
dem Fachmann hinlänglich
bekannt ist.
-
2 zeigt ein Datennetz, in
dem Daten in Form von Datenpaketen mit dem erfindungsgemäßen Datenübertragungs-verfahren übertragen
werden. Das Datennetz umfasst einen Server 1, mit dem über das
globale Internet 2 Daten an einen Gateway-Server 3 übertragen
werden. Dieser Server steuert die Datenübertragung von einer Luftschnittstelle 4 über ein
UMTS-Netz hin zu einem Endgerät 5,
bei dem es sich beispielsweise um einen Laptop handelt, das via
einem Mobiltelefon mit dem UMTS-Netz verbunden ist.
-
Bei
der Datenübertragung
im Netz der 2 wird in
der Transportschicht das DCCP-Protokoll verwendet, welches insbesondere
für den
Transport von Multimediadaten besser geeignet ist als das bekannte
UDP-Transportprotokoll. Die Haupteigenschaft des DCCP-Protokolls
besteht darin, dass es Rücksicht
auf andere Transportprotokolle, wie z.B. TCP, nimmt und z.B. im
Falle einer Netzwerküberlastung die
Datenrate herunterregelt. Zum Regeln der Datenrate über das
DCCP-Protokoll sind sog. CCA-Algorithmen (CCA = Congestion Control
Algorithm) notwendig. Diese Algorithmen sind im Datennetz implementiert
und können
zur Regelung der Datenübertragung
ausgeführt
werden. Es sind derzeit zwei CCA-Algorithmen bekannt, die sich beide
fair gegenüber
dem TCP-Protokoll verhalten. Das DCCP-Protokoll stellt einen Mechanismus bereit,
mit dem der geeignete CCA-Algorithmus zur Datenregelung im Falle
von Datenstaus ausgehandelt wird. Zur Unterstützung des im DCCP-Protokoll verwendeten CCA-Algorithmus
enthält
der Header der DCCP-Daten ein als CCval bezeichnetes Datenfeld.
Die Interpretation dieses Datenfeldes wird durch den jeweiligen
ausgehandelten CCA-Algorithmus festgelegt.
-
In
der hier beschriebenen Ausführungsform der
Erfindung kann neben den zwei CCA-Algorithmen auch ein dritter Algorithmus
GCCA (GCCA = Gateway Congestion Control Algorithm) initiiert werden,
der von dem Gateway-Server 3 ausgeführt wird und mit dem die Datenrate
bei Datenengpässen
an der Luftschnittstelle geregelt wird. Zum Funktionieren dieses
GCCA-Algorithmus ist es notwendig, dass dem Algorithmus Informationen über die
Wichtigkeit der zu übermittelnden
Datenpakete bereitgestellt werden, so dass der Algorithmus entscheiden
kann, welche Daten er bei Datenengpässen am ehesten verwerfen kann,
ohne dass sich eine wesentliche Beeinträchtigung der Applikation ergibt,
für die
die Daten vorgesehen sind. Demzufolge ist es notwendig, dass die
DCCP-Datenpakete Informationen über
die Priorität
der einzelnen übertragenen
Datenpakete enthalten.
-
In
der hier beschriebenen Ausführungsform wird
das CCval-Feld im DCCP-Header zur Übermittlung von Informationen
hinsichtlich der Priorität
von Datenpaketen eingesetzt. Beim Verbindungsaufbau detektiert der
Gateway-Server, ob der GCCA-Algorithmus
verwendet wird. Ist dies der Fall, weiß der Gateway-Server, dass
in dem CCval-Feld Informationen betreffend die Wichtigkeit der Datenpakete
enthalten sind. Abhängig
von dem Wert des CCval-Feldes und eventuell auch von dem Zustand
bzw. Feedback des Datennetzes, kann der Gateway-Server dann mit
Hilfe des GCCA-Algorithmus Entscheidungen treffen, was mit den einzelnen
Datenpaketen passieren soll. Eine bevorzugte Entscheidung könnte hierbei
die binäre
Entscheidung sein, ob das Datenpaket verworfen werden soll oder
an das Endgerät weitergeleitet
werden soll.
-
Das
CCval-Feld besteht aus vier Bits, d.h. das Feld kann insgesamt 16
verschiedene Werte annehmen. Neben einer Signalisierung der beiden schon
vorgesehenen CCA-Algorithmen können
somit weitere Interpretationsmöglichkeiten
dieses Feldes und daraus abgeleitete Verhaltensweisen des Gateway-Rechners
verwirklicht werden. Eine Möglichkeit
zur Belegung des CCval-Feldes
besteht darin, dass durch die Größe des Wertes
im CCval-Feld die Wichtigkeit eines codierten Datenpakets für eine nachfolgende
ordnungsgemäße Decodierung
beim Endgerät
spezifiziert wird. Hierbei könnte
beispielsweise der Wert Null im Feld bedeuten: "Paket kann verworfen werden, ohne dass
die Decodierung nachfolgender Pakete davon in Mitleidenschaft gezogen wird". Demgegenüber könnte der
Wert 15 im Feld bedeuten: "Nicht
verwerfen, da sonst die nächsten nachfolgenden
Pakete nicht mehr decodierbar sind". Mit einer derartigen Signalisierung
kann man das Gateway zu dem UMTS-Netz in 2 durch den Gateway-Server 3 derart
steuern, dass entsprechend einem applikationsspezifischen Kontext
Pakete verarbeitet werden. Ein typisches Anwendungsfeld ist die
nachfolgend beschriebene Übertragung
von Videodaten.
-
In
einem Videodatenstrom wird eine Sequenz von codierten digitalisierten
Bildern übertragen,
wobei die einzelnen Datenpakete Videoframes enthalten, mit denen
codierte Intra-Frames I, Prädiktions-Frames
P und bidirektionale Frames B übertragen
werden. Dem Fachmann sind die Bedeutung der einzelnen Frames hinlänglich bekannt.
Ein Intra-Frame wird ohne die Verwendung von Informationen aus anderen
Frames codiert. Demgegenüber
braucht ein P-Frame zur ordnungsgemäßen Decodierung Informationen
aus vorhergehenden Frames. Ein B-Frame zeichnet sich u.a. dadurch
aus, dass seine Bildinformationen von keinem der anderen Frames
zur Codierung verwendet werden.
-
In
einer Ausgestaltung des GCCA-Algorithmus könnten den einzelnen Frames
wie folgt zwischen 0 und 15 liegende CCval-Werte zugeordnet werden:
I(15)P(14)P(14)B(0)P(13)P(13)B(0)
... I(15).
-
Hierbei
bedeutet der Buchstabe I, P bzw. B ein Datenpaket mit einem I-,
P- bzw. B-Frame und die Zahl in Klammern entspricht dem für das Datenpaket verwendeten
CCval-Wert.
-
Ein
Gateway-Rechner könnte
dieser Sequenz entnehmen, dass beim Löschen eines Paketes alle nachfolgenden
Pakete, die einen geringeren CCval-Wert aufweisen, verworfen werden
können, da
mit solchen Paketen keine ordnungsgemäße Decodierung mehr stattfinden
kann. Geht beispielsweise das dritte Paket der obigen Reihe verloren,
können
alle nachfolgenden Pakete, deren Ccval-Wert kleiner bzw. gleich
14 ist, verworfen werden.
-
Dies
bedeutet, dass erst wieder mit dem Übertragen eines neuen Intra-Frames,
der den CCval-Wert 15 aufweist, eine ordnungsgemäße Decodierung ermöglicht wird.
-
Es
können
in der Videocodierung auch noch subtilere Abhängigkeiten zwischen den einzelnen Frames
bestehen. Beispielsweise können
einzelne Prädiktions-Frames
nicht von dem vorhergehenden Frame, sondern von dem vorvorgehenden
Frame abhängen.
Um einer derartigen Abhängigkeit
Rechnung zu tragen, könnte
die oben beschriebene Signalisierung von Videoframes noch durch
Bildung von Abhängigkeitsklassen,
welche CCval-Werte enthalten, verfeinert werden. Die Klassen könnten beispielsweise
wie folgt aussehen:
{0, 1, 14, 15}, {2, 3, 4, 5}, {6, 7, 8,
9}, {10, 11, 12, 13}
-
Durch
die CCval-Werte der ersten Klasse werden beispielsweise globale
Sachverhalte ausgedrückt,
wie die Tatsache, dass alle spezifizierten Abhängigkeiten zurückgesetzt
werden. Die zweite, dritte und vierte Klasse gemäß der oberen Klassifizierung
drücken
Abhängigkeiten
zwischen Datenpaketen aus, wobei Datenpakete mit CCval-Werten der gleichen
Klasse voneinander abhängig
sind. Beispielsweise würde
die Signalisierung I(15)P(5)P(9)P(4)P(8)P(3)P(7) folgendes bedeuten:
Wenn
das zweite Pakete mit dem CCval-Wert 5 verloren geht, werden alle
Pakete mit CCval-Werten 5, 4, 3, 2 vom Gateway-Server verworfen, bis ein Reset mit
dem CCval-Wert 15 gesendet wird. Demgegenüber werden jedoch Pakete mit
den CCval-Werten
9, 8, 7, 6 weiterhin vom Gateway-Server durchgelassen, da sie zu
einer anderen Klasse gehören.
Wenn hingegen das vierte Pakete mit dem CCval-Wert 4 verloren geht,
müssen
nur Pakete mit den CCval-Werten 4, 3, 2 verworfen werden, wohingegen die
Pakete mit CCval-Werten aus den anderen Klassen bzw. mit größeren CCval-Werten
der gleichen Klasse nicht verworfen werden müssen.
-
Das
Wesentliche an dem im vorangegangenen beschriebenen Verfahren besteht
darin, dass bei der Datenübertragung
Informationen hinsichtlich der Wichtigkeit der Datenpakete übersendet
werden, wobei solche Informationen aus den oberhalb der DCCP-Transportschicht
liegenden Schichten extrahierbar sind.
-
3 zeigt den Aufbau eines
DCCP-Headers. Der Header umfasst einen generischen Anteil "Generic DCCP-Header" sowie ein Optionsfeld "Options" und ein Datenfeld.
Bei der Signalisierung von Informationen betreffend die Wichtigkeit
von Datenpaketen kann als Alternative zu dem zuvor beschriebenen
CCval-Feld beispielsweise das Feld Options verwendet werden.
-
4 zeigt den Aufbau des generischen
Anteil des Headers aus 3.
Der Header enthält
als Informationen u.a. den Source-Port und den Destination-Port.
In dem generischen Anteil ist das zuvor beschriebene Feld CCval
enthalten, mit dem die Wichtigkeit von Datenpaketen signalisiert
werden kann.