-
Diese
Erfindung bezieht sich auf Verfahren zur Datenkommunikation zwischen
einem Server-Rechner und einem Client-Rechner.
-
Die
Qualität
der Dienste (Quality of Service, QoS), die von den Betreibern von
Kommunikationsnetzen und -systemen angeboten werden, ist von großer Bedeutung,
insbesondere in Bereichen, bei denen eine zuverlässige, schnelle Versorgung
mit Information erforderlich ist, z. B. bei Bankgeschäften, Aktienhandel
etc. Die Zunahme der Multimediakommunikation über Computernetze, zum Beispiel
Audio- und Videoübertragung,
Fernsehversorgung und Rundfunk etc. führt zu einer Zunahme der Schwierigkeiten,
die im Zusammenhang mit der Versorgung aller Anwender mit diesen
Diensten bei akzeptabler QoS auf Grund der hohen Bandbreiten und
der Echtzeitverarbeitung der Daten bestehen. Während es möglich ist, eine gewünschte QoS
durch Erweiterung der Netzkapazität zu erreichen, d. h. durch
Erweiterung der Kapazität
der Übertragungsverbindungen und
durch Erweiterung der Schaltkapazitäten von Switch-Vorrichtungen
und Routern, wird dadurch ein erheblicher Aufwand an Kapital notwendig,
und diese Investition kann die Kosten für die bereitgestellten Dienste
prohibitiv erhöhen.
Es ist klar, dass es erhebliche Vorteile bringt, wenn Dienste mit
gegebener QoS angeboten werden können,
ohne Netzinvestitionen in einer derart hohen Größenordnung vornehmen zu müssen.
-
Ein
typisches Beispiel für
die Netzwerk-Ressourcen, die benötigt
werden, um garantierte QoS-Pegel einzuhalten, sind die verbindungsbasierenden
Netze und verbindungslosen Netze. Ein Beispiel für verbindungsbasierende Netze
ist das öffentliche
Telefonwahlnetz (Public Switched Telephone Network, PSTN), bei dem
eine Verbindung durch das Wählen
der entsprechenden Telefonnummer hergestellt wird. Ein Beispiel
für ein
verbindungsloses Netz ist das Internet, bei dem Da tenpakete über das
Netz zu ihrem Bestimmungsort weitergeleitet werden, wobei der Anwender
keinerlei Kontrolle über
den Weg hat, den die einzelnen Pakete nehmen. Der Nachteil beim
Einrichten einer Verbindung besteht darin, dass im Allgemeinen ein
hoher Preis dafür
bezahlt werden muss, die Verbindung aufrechtzuerhalten und somit die Übertragung
der Information zu garantieren, während die Übertragung einer Folge von
Paketen auf die verbindungslose Art auf Grund von Veränderungen
bei den zwischengeschalteten Netzelementen gestört sein kann, sei es auf Grund
von Versagen der Einrichtungen oder Überlastung des Netzes. Die
Unterbrechung bei einer Folge von Paketen ist ein geringeres Problem,
wenn beispielsweise eine Textdatei von einem Server-Rechner heruntergeladen
wird. Bei Echtzeitdaten, wie zum Beispiel Video oder Audio, ist
die Unterbrechung einer Paketfolge, so dass Pakete außerhalb
ihrer Reihenfolge oder mit einer niedrigeren Rate als für die Wiedergabe
erforderlich ankommen, mit schwerwiegenderen Folgen verbunden. Dementsprechend
gibt es insbesondere im Zusammenhang mit Computerkommunikationsvorgängen den
Wunsch, die Qualität
des Dienstes, der über verbindungsbasierende Übertragungsverfahren
bereitgestellt wird, ohne zusätzliche
Kosten für
das Herstellen einer Verbindung aufrechtzuerhalten.
-
In
der europäischen
Patentanmeldung
EP 0 853 404 wird
ein Relais-Knoten
beschrieben, an dessen Eingang Videodaten anliegen, die eine hohe Änderungsrate
aufweisen. Am Ausgang werden die gleichen Videodaten mit einer gleichförmigeren
Rate erzeugt. Der Relais-Knoten
enthält
schnelle und langsame Speichereinrichtungen – die langsame Speichereinrichtung
wird verwendet, wenn der verbleibende Platz in dem schnellen Speicher
unter einen Schnellenwert sinkt.
-
Gemäß einem
ersten Aspekt der Erfindung wird ein Verfahren zum Übertragen
von Daten von einem Server-Rechner zu einem Client- Rechner über ein
Kommunikationsnetz angegeben, wobei die Daten zwischen dem Server-
und dem Client- Rechner durch einen Netzknoten weitergeleitet werden;
wobei der Netzknoten einen Eingang zum Empfangen von Daten von dem
Server-Rechner aufweist, wobei der Eingang mit einem ersten und
einem zweiten Pufferelement verbunden ist, wobei die Pufferelemente
mit einem Ausgangskanal einer vorgegebenen Bandbreite verbunden
sind, wobei dem ersten Pufferelement vorzugsweise ein Teil der Ausgangsbandbreite zugeordnet
ist und dem zweiten Pufferelement der restliche Teil der Ausgangsbandbreite
zugeordnet ist, so dass die Pakete, die in dem ersten Pufferelement empfangen
wurden, bevorzugt gegenüber
denjenigen Paketen übertragen
werden, die in dem zweiten Pufferelement empfangen wurden, wobei
das Verfahren umfasst:
- (i) Übertragen von Daten von dem
Server-Rechner an den Client-Rechner
unter Verwendung des ersten Pufferelements des Netzknotens, wobei das
Verfahren gekennzeichnet ist durch:
- (ii) Übertragen
von Daten von dem Server-Rechner an den Client-Rechner unter Verwendung des zweiten
Pufferelements des Netzknotens nach Empfang eines ersten Steuersignals
von dem Client-Rechner
durch den Server-Rechner. Zusätzlich
kann das Verfahren als weiteren Schritt umfassen:
- (iii) Neuaufnahme der Übertragung
von Daten von dem Server-Rechner
an den Client-Rechner unter Verwendung des ersten Pufferelements
des Netzknotens nach Empfang eines zweiten Steuersignals von dem
Client-Rechner durch den Server-Rechner. Das erste Steuersignal
kann durch den Client-Rechner in Abhängigkeit davon erzeugt werden,
ob der Umfang der Daten in einem Client-Rechner-Daten-Cache einen ersten, oberen Schwellenwert
erreicht. Das zweite Steuersignal kann durch den Client-Rechner
in Abhängigkeit
davon erzeugt werden, ob der Umfang der Daten in einem Client-Rechner-Daten-Cache einen
zweiten Schwellenwert erreicht, der unter dem ersten Schwellenwert
liegt.
-
Darüber hinaus
kann der Kommunikationspfad zwischen dem Server-Rechner und dem
Client-Rechner mehr als einen Netzknoten aufweisen, und die Auswahl
entweder des ersten oder des zweiten Pufferelements in Abhängigkeit
von einem Steuersignal erfolgt innerhalb eines oder mehrerer der Netzknoten
auf dem Kommunikationspfad zwischen dem Server-Rechner und dem Client-Rechner.
-
Ein
Datenträger
kann einen Code enthalten, der durch einen Rechner ausgeführt werden
kann, so dass er in einen Rechner geladen werden kann, um eines
der obigen Verfahren durchzuführen.
-
Gemäß einem
zweiten Aspekt der vorliegenden Erfindung wird ein Verfahren zum
Empfangen von Daten von einem Server-Rechner durch einen Client-Rechner
angegeben, wobei die Daten über
ein Kommunikationsnetz durch einen Netzknoten weitergeleitet werden,
wobei der Netzknoten einen Eingang zum Empfangen von Daten von dem
Server-Rechner aufweist, wobei der Eingang mit einem ersten und
einem zweiten Pufferelement verbunden ist, wobei die Pufferelemente
mit einem Ausgangskanal einer vorgegebenen Bandbreite verbunden
sind, wobei dem ersten Pufferelement vorzugsweise ein Teil der Ausgangsbandbreite
zugeordnet ist und dem zweiten Pufferelement der restliche Teil
der Ausgangsbandbreite zugeordnet ist, so dass die Pakete, die in
dem ersten Pufferelement empfangen wurden, bevorzugt gegenüber denjenigen
Paketen übertragen
werden, die in dem zweiten Pufferelement empfangen wurden, wobei
das Verfahren umfasst:
- (i) Empfangen von Daten
von dem Server-Rechner durch den Client-Rechner über das erste Pufferelement
des Netzknotens, wobei das Verfahren gekennzeichnet ist durch:
- (ii) Empfangen von Daten von dem Server-Rechner über das
zweite Pufferelement des Netzknotens durch den Client-Rechner in
Abhän gigkeit von
der Übertragung
eines ersten Steuersignals von dem Client-Rechner an den Server-Rechner. Zusätzlich kann
das Verfahren als weiteren Schritt umfassen:
- (iii) Neuaufnahme der Übertragung
von Daten von dem Server-Rechner
an den Client-Rechner unter Verwendung des ersten Pufferelements
des Netzknotens nach Empfang eines zweiten Steuersignals von dem
Client-Rechner durch den Server-Rechner.
-
Das
erste Steuersignal kann durch den Client-Rechner in Abhängigkeit
davon erzeugt werden, ob der Umfang der Daten in einem Client-Rechner-Daten-Cache
einen ersten, oberen Schwellenwert erreicht. Das zweite Steuersignal
kann durch den Client-Rechner in Abhängigkeit davon erzeugt werden,
ob der Umfang der Daten in einem Client-Rechner-Daten-Cache einen
zweiten Schwellenwert erreicht, der unter dem ersten Schwellenwert liegt.
Außerdem
kann die Kommunikationsleitung zwischen Server-Rechner und dem Client-Rechner mehr als
einen Netzknoten umfassen, und die Auswahl entweder des ersten oder
des zweiten Pufferelements kann in Abhängigkeit von einem Steuersignal
in einem oder mehreren derjenigen Netzknoten erfolgen, über die
die Kommunikationsleitung zwischen dem Server-Rechner und dem Client-Rechner verläuft. Ein
Datenträger
kann einen Code enthalten, der durch einen Rechner ausgeführt werden
kann, so dass er in einen Rechner geladen werden kann, um eines
der obigen Verfahren durchzuführen.
-
Gemäß einem
dritten Aspekt der vorliegenden Erfindung wird ein Server-Rechner
zum Übertragen
von Daten an einen Client-Rechner über ein Kommunikationsnetz
geschaffen, wobei die Daten durch einen Netzknoten weitergeleitet
werden, wobei die Daten von dem Server-Rechner als mehrere Datenpakete übertragen
werden; wobei der Server-Rechner im Betrieb Datenpakete überträgt, die eine
erste Identifizierung enthalten, um die bevorzugte Weiterleitung
der Daten pakete an den Client-Rechner in dem Netzknoten zu ermöglichen,
und der Server-Rechner dadurch gekennzeichnet ist, dass der Server-Rechner
in Abhängigkeit
von einem ersten Steuersignal von dem Client-Rechner Datenpakete überträgt, die
eine zweite Identifizierung enthalten, um die bevorzugte Weiterleitung
von Datenpaketen an den Client-Rechner in dem Netzknoten zu verhindern.
Zusätzlich
kann der Server-Rechner in Abhängigkeit
von einem zweiten Steuersignal von dem Client-Rechner Datenpakete übertragen,
die die erste Identifizierung enthalten, um die bevorzugte Weiterleitung
der Datenpakete an den Client-Rechner in dem Netzknoten erneut zu
ermöglichen.
-
Ausführungsformen
der Erfindung werden im Folgenden als Beispiel beschrieben, wobei
Bezug genommen wird auf die beigefügten Zeichnungen.
-
1 zeigt
eine schematische Darstellung eines Kommunikationsnetzes, bei dem
ein Kommunikationsverfahren gemäß der Erfindung
eingesetzt werden kann.
-
2 zeigt
eine weitere schematische Darstellung eines Kommunikationsnetzes,
bei dem ein Kommunikationsverfahren gemäß der Erfindung eingesetzt
werden kann.
-
3 zeigt
eine schematische Darstellung eines Kommunikationsnetzes, bei dem
ein Kommunikationsverfahren gemäß einer
weiteren Ausführungsform
der Erfindung eingesetzt werden kann.
-
1 zeigt
eine schematische Darstellung eines Kommunikationsnetzes, bei dem
ein Kommunikationsverfahren gemäß der Erfindung
eingesetzt werden kann. Der Server-Rechner 10 ist mit einem Client-Rechner 20 über ein
verbindungsloses Kommunikationsnetz 30 verbunden, das wenigstens
einen Netzknoten 40 auf dem Kommunikati onspfad zwischen
dem Server-Rechner 10 und dem Client-Rechner 20 enthält. Jeder
Netzknoten umfasst zwei Pufferelemente 41 und 42,
in denen ankommende Pakete bei ihrer Ankunft in jedem Netzknoten
einsortiert werden. Ein Flag in dem Header jedes Datenpakets legt
fest, welches Pufferelement für
das Paket gewählt
werden soll. Eines der Pufferelemente 41 ist als Puffer
hoher Priorität
bestimmt, während
das andere Pufferelement 42 als Puffer niedrigerer Priorität bestimmt
ist. Der Puffer 41 hoher Priorität hat bevorzugten Zugriff auf
den Ausgang des Netzknotens, so dass ein Großteil der Bandbreite, die von
dem Netzknoten belegt wird, für
den Puffer hoher Priorität
reserviert ist. Der Rest der Ausgangsbandbreite des Netzknotens
ist für
den Puffer 42 niedrigerer Priorität reserviert, wenn der Puffer
hoher Priorität
jedoch die ihm zugeordnete Bandbreite nicht voll nutzt, kann der Puffer
niedriger Priorität
die Bandbreite temporär
nutzen, die dem Puffer hoher Priorität zugeordnet ist, bis der Puffer
hoher Priorität
Bedarf anmeldet, wieder seine zugewiesene Bandbreite zu nutzen.
Die Pufferelemente können
Puffer beliebiger bekannter Form sein, beispielsweise Schreib-Lesespeicher
(Random Access Memory), Verzögerungsleitungen,
etc., und sie können
entweder elektronische oder optische Pufferelemente sein, je nach
Aufbau des Netzknotens. Die beiden Pufferelemente 41 und 42 können virtuell
oder physikalisch voneinander getrennt sein. Der Netzknoten kann
mehr als ein Pufferelement hoher Priorität und/oder mehr als ein Pufferelement niedriger
Priorität
umfassen.
-
Ein
Beispiel für
einen derartigen Netzknoten findet man in der internationalen Patentanmeldung GB98/02727.
Der Netzknoten kann ein IP-(Internet Protocol)Router, ein ATM-(Asynchronous
Transfer Mode)Switch, der IP-Daten über ein ATM-Netz weiterleitet,
oder eine Einrichtung mit ähnlicher
oder äquivalenter
Funktion sein.
-
Die
Kommunikation wird durch den Client-Rechner initiiert, der eine
Anfrage an den Server-Rechner richtet, eine Daten-Ressource zu übermitteln,
wie zum Beispiel eine Audio- oder Videodatei in Echtzeit, die auf
dem Server-Rechner oder an anderer Stelle, jedoch unter der Kontrolle
des Server-Rechners abgespeichert ist. Die Anfrage beinhaltet genügend Information
bezüglich
des Client-Rechners (beispielsweise wenigstens eine Netzadresse des
Client-Rechners), so dass der Server-Rechner eine Folge von Datenpaketen
an den Client-Rechner schicken
kann. Ein Flag in dem Header jedes übertragenen Datenpakets in
der Folge bewirkt, dass die Folge von Paketen in den Puffer hoher
Priorität
bei jedem Netzknoten auf dem Kommunikationspfad zwischen dem Server-Rechner
und dem Client-Rechner geschaltet wird. Dieses hat zur Folge, dass
die Datenpakete an den Client-Rechner mit wenigstens der geringsten
garantierten Ausgaberate übertragen werden.
-
Die
garantierte Ausgaberate kann durch den Client-Rechner angefordert
werden, wenn die Ausgabe der Echtzeit-Daten-Ressource benötigt wird. Typischerweise
wird die obere Grenze für
die garantierte Ausgaberate je nach Übertragungsrate festgelegt,
die über
die langsamste Kommunikationsverbindung auf dem Server-Rechner-Client-Rechner-Kommunikationspfad
zur Verfügung
steht. Dies kann die Verbindung zwischen dem Client-Rechner und
dem Kommunikationsnetz sein, wobei es sich um ein Einwähl-Modem
oder einen Terminal-Adapter für
die Verbindung eines LAN mit dem Kommunikationsnetz handeln kann.
Der niedrigere Grenzwert für
die garantierte Ausgaberate kann je nach Wiedergaberate festgelegt
werden, die für
die Echtzeit-Daten-Ressource erforderlich ist. Wenn der Anwender
des Client-Rechners jedoch bereit ist, vor der Aufnahme der Wiedergabe
der Daten zu warten und genügend
Kapazität
des lokalen Cache hat, so kann der Server je nach Bedarf bei dem
Client Daten an den Client mit einer Rate schicken, die niedriger
als die Wiedergaberate ist. Wenn die Ausgabe von Daten unter Verwendung
des Pufferelements hoher Priorität
bei jedem Netzknoten erfolgt, so sollte die tatsächliche Ausgaberate signifikant über den
kleinsten Werten für
die garantierte Ausgaberate liegen. Wenn die Daten an den Client über einen
Proxy-Server oder ein Netz-Cache in einen zweiten Server-Rechner ausgegeben
werden, so ist es möglich,
dass die Datenfolge an den Proxy-Server mit höherer Rate als der Client-Ausgaberate
ausgegeben wird, wobei der Proxy-Server die zusätzlichen Daten im Cache zwischenspeichert.
-
Unter
den meisten Umständen
empfängt
der Client-Rechner die Folge von Datenpaketen mit einer Rate, die
wesentlich größer ist
als die, die für
die Wiedergabe der Echtzeit-Daten-Ressource erforderlich ist. Die überschüssigen Daten,
die von dem Client-Rechner empfangen werden, müssen in einem Cache-Speicher
abgelegt werden, so dass sie für
die Wiedergabe zur Verfügung
stehen, wenn dies erforderlich wird. Dieser Cache-Speicher kann
ein lokaler Speicher sein, beispielsweise ein RAM-Speicher oder
ein Laufwerk, oder es kann sich um einen abseits von dem Client-Rechner
befindlichen Speicher handeln, der jedoch unter der Kontrolle des
Client-Rechners ist (beispielsweise ein Netz-Cache-Speicher oder
ein Plattenbereich eines Servers, der über ein LAN mit dem Client-Rechner
verbunden ist. In diesem Fall ist die Datenübertragungsrate von einem solchen
entfernten Cache-Speicher wesentlich größer anzusetzen als die Wiedergaberate
irgendeiner Echtzeit-Daten-Ressource, so dass der Transfer von Daten
von dem entfernten Cache-Speicher zu dem Client-Rechner nicht für die Begrenzung der Kommunikationsverbindung
steht.). Die Größe des lokalen
Cache-Speichers hängt
im wesentlichen von den Möglichkeiten
des Client-Rechners ab, aber es besteht die Möglichkeit, dass der Umfang
der überschüssigen Daten,
die von dem Client-Rechner empfangen werden, größer als die Kapazität des lokalen
Cache-Speichers ist. Um einen Überlauf
des lokalen Cache- Speichers
zu verhindern, infolgedessen es zu einem Datenverlust käme, ist
es notwendig, dass der Client eine Steuernachricht an den Server-Rechner
schickt, wenn der lokale Cache-Speicher bis zu einem oberen Schwellenwert
aufgefüllt ist,
der kleiner (typischerweise nur wenig kleiner) als die Gesamtkapazität des lokalen
Cache-Speichers sein
sollte (womit der Zeit Rechnung getragen wird, die für die Übertragung
und Verarbeitung der Steuernachricht benötigt wird).
-
Die
Steuernachricht bewirkt bei Empfang durch den Server-Rechner, dass
der Server-Rechner die Internet-Arbeitsprotokolle veranlasst, das
Flag umzusetzen, mit dem überwacht
wird, in welches Netzknotenpufferelement die Datenfolgen geschaltet werden,
so dass die Datenpakete in das Pufferelement niedriger Priorität in jedem
Netzknoten auf dem Kommunikationspfad zwischen dem Server und dem Client
umgeleitet werden. Dies hat den Effekt, dass die garantierte Ausgabe
der Datenpaketfolgen an den Client angehalten wird, wobei die Folge
der Datenpakete auf der Basis des "geringsten Aufwandes" ausgegeben wird. Außerdem bedeutet die Verwendung
des Puffers niedriger Priorität,
dass Pakete zwischen Server und Client verloren gehen können oder dass
Datenpakete außerhalb
ihrer Reihenfolge in der Datenpaketfolge ankommen. Wenn diese Effekte eintreten,
müssen
die Protokolle, die zur Steuerung der Kommunikation zwischen dem
Server und dem Client eingesetzt werden, in der Lage sein, dies
zu korrigieren, d. h. die erneute Übertragung von Paketen anzufordern
und Pakete außerhalb
ihrer Reihenfolge neu einzuordnen.
-
Wenn
der Client die Paketfolge mit einer Rate erhält, die noch über der
Wiedergaberate der Echtzeit-Daten-Ressource liegt, so wird der lokale Cache-Speicher
weiterhin gefüllt
werden, wenngleich mit einer niedrigeren Rate. Dies bedeutet ein
wenig belastetes Kommunikationsnetz, was eher selten auftritt. Wenn
diese Situation weiterhin fortbestehen sollte, so besteht die Möglichkeit,
dass es zu einem Überlauf
des lokalen Cache-Speichers kommt, was zu Datenverlust führt. Diese
Situation kann umgangen werden, indem der Client ein Steuersignal
an den Server schickt, mit dem der Server aufgefordert wird, die
Datenfolge mit einer niedrigeren Rate zu übertragen. Wenn niedrige Anforderungen
außerdem
sowohl an den Puffer hoher Priorität als auch den Puffer niedriger
Priorität
gestellt werden, so besteht die Möglichkeit, dass die Datenausgaberate
tatsächlich
angehoben werden kann, wenn der Puffer niedriger Priorität eingesetzt
wird. Wenn diese Situation gegeben ist, kann der Client ein Steuersignal
an den Server senden, mit dem der Server aufgefordert wird, die
Datenfolge mit einer niedrigeren Rate zu übertragen.
-
Wenn
die Paketfolge an den Client mit genau der Wiedergaberate der Echtzeit-Daten-Ressource ausgegeben
wird, so wird der Speicherpegel des lokalen Cache-Speichers konstant
gehalten, bis alle Datenpakete durch den Client empfangen worden sind,
wobei zu diesem Zeitpunkt der Speicherpegel des lokalen Cache-Speichers
abnehmen wird, da der Rest der Echtzeit-Daten-Ressource aus dem
lokalen Cache-Speicher heraus wiedergegeben wird.
-
Wenn
die Paketfolge an den Client mit einer kleineren als der Wiedergaberate
ausgegeben wird, so wird der Speicherpegel des lokalen Cache-Speichers
mit einer Rate abnehmen, die gleich der Differenz zwischen der Wiedergaberate
und der Datenausgaberate ist. Wenn der lokale Cache-Speicher relativ
groß ist
und die Rate, mit der der lokale Cache-Speicher geleert wird, relativ
klein ist, so kann die gesamte Echtzeit-Daten-Ressource empfangen werden
und dann durch den Client wiedergegeben werden, ohne dass der lokale
Cache-Speicher geleert
wird und Daten verlorengehen. Wenn der lokale Cache-Speicher jedoch
relativ klein ist und die Rate, mit der der lokale Cache-Speicher
geleert wird, relativ groß ist,
so wird der lokale Ca che-Speicher geleert werden, während die
Datenpaketfolge mit einer Rate ausgegeben wird, die niedriger ist,
als es für
die Wiedergabe erforderlich ist, was zu einem teilweisen oder vollständigen Verlust
der Wiedergabe der Echtzeit-Daten-Ressource führt. Um dies zu vermeiden, sendet
der Client eine zweite Steuernachricht an den Server, wenn der Speicherpegel
des lokalen Cache-Speichers auf einen niedrigeren Schwellenwert sinkt,
der wenigstens etwas über
dem Punkt liegen sollte, an dem der lokale Cache-Speicher leer wird. Diese
zweite Steuernachricht bewirkt bei ihrem Empfang durch den Server-Rechner, dass der
Server-Rechner das Flag verändert,
mit dem kontrolliert wird, in welches Netzknotenpufferelement die
Datenpakete geschaltet werden, was dazu führt, dass die Datenpakete in
das Pufferelement hoher Priorität
in jedem Netzknoten auf dem Kommunikationspfad zwischen dem Server
und dem Client geschaltet werden. Dies hat den Effekt, dass die
garantierte Ausgabe der Datenpaketfolge an den Client wieder aufgenommen
wird, wodurch die Rate angehoben wird, mit der die Datenpaketfolge
durch den Client empfangen wird, und der Client veranlasst wird,
ausreichend Daten für
die unterbrechungsfreie Wiedergabe der Echtzeit-Daten-Ressource
zu empfangen, während gleichzeitig
der Speicherpegel des lokalen Cache-Speichers angehoben wird.
-
Dieser
Prozess kann je nach Bedarf iterativ wiederholt werden, wobei die
Datenausgaberate in dem Maße
gesenkt wird, in welchem sich der Speicherpegel des lokalen Cache-Speichers
dem oberen Schwellenwert nähert,
und die Datenausgaberate in dem Maße angehoben wird, in welchem
der Speicherpegel des lokalen Cache-Speichers den niedrigeren Schwellenwert
erreicht, bis die gesamte Daten-Ressource an den Client ausgegeben
worden ist und vom Client wiedergegeben wurde.
-
Bei
dem Kommunikationsnetz gemäß der Erfindung
kann das Standard-Internet-Arbeitsprotokoll eingesetzt werden, d.
h. TCP/IP, aber die Erfindung kann auch unter Verwendung irgendeines
beliebigen verbindungslosen Kommunikationsnetzes implementiert werden.
Der Server-Rechner kann ein World Wide Web-(WWW)Server sein, der
Client-Rechner kann ein Arbeitsplatzrechner (Personal Computer, PC)
oder ein Netzwerkrechner (Network Computer, NC) sein, auf dem ein
WWW-Browser-Anwendungsprogramm läuft,
wie zum Beispiel Netscape Navigator (Handelsmarke) oder Microsoft
Internet Explorer (Handelsmarke), oder es kann sich um ein elektronisches
Notizbuch (Personal Digital Assistant, PDA) wie einen Palm Pilot
(Handelsmarke) oder einen Psion Organiser (Handelsmarke) handeln.
Außerdem können Terminals
für Mobilsysteme
der dritten Generation (wie zum Beispiel UMTS [Universal Mobile
Telephony System]) und mobile Handtelefone mit erweiterter Funktionalität als Client-Rechner
verwendet werden.
-
Es
versteht sich, dass bei großen
Kommunikationsnetzen mehrere Server-Rechner und mehrere Client-Rechner
vorhanden sind, wobei viele Datenfolgen zwischen verschiedenen Kombinationen
von Servern und Clients übermittelt
werden. Um sicherzustellen, dass die Netzknoten auf dem Kommunikationspfad
zwischen einem bestimmten Server und einem bestimmten Client in
der Lage sind, die Datenfolge mit der garantierten Datenausgaberate
zu übertragen,
ist es notwendig, dass in gewisser Form eine Zulässigkeitskontrolle bei dem
Netzknoten stattfindet. Auf der niedrigsten Ebene kann dieses beinhalten,
dass jeder Netzknoten nur eine gewisse Anzahl von Datenfolgen in
dem Puffer hoher Priorität
zulässt, ohne
dass weitere Datenfolgen zugelassen werden, sobald die gesamte Bandbreite,
die dem Puffer hoher Priorität
zugeordnet wurde, belegt wird. Der Netzknoten kann auch Datenfolgen
zurückweisen,
wenn es zu wenig Pufferkapazität
gibt, um alle Datenfolgen zu berücksichtigen.
Eine weitere Über legung
ist es, dass eine Datenfolge, die über den Puffer niedriger Priorität übertragen
wird, umgeschaltet werden muss auf den Puffer hoher Priorität, wenn
der lokale Cache-Speicher des entsprechenden Client-Rechners nahezu
leer ist. Um einen effizienten Nutzbetrieb sicherzustellen, ist
es notwendig, dass die Wahrscheinlichkeit dafür, dass eine Datenfolge aus
dem Puffer niedriger Priorität
nicht in dem Puffer hoher Priorität zugelassen wird, klein ist.
-
Eine
alternative Variante zu dem oben erläuterten Verfahren, mit der
die Frequenz reduziert werden kann, mit der Datenfolgen von einem
Puffer in den anderen umgeschaltet werden, lässt sich durch Verwendung von
adaptiven Wiedergaberaten verwirklichen, wobei die Grenzen hier
durch den Client-Rechner festgelegt werden können. Wenn Daten an den Client
unter Verwendung der Puffer hoher Priorität übertragen werden und der Speicherpegel
des lokalen Cache-Speichers
zunimmt, so ist es wahrscheinlich, dass der obere Schwellenwertpegel
erreicht werden wird, was zur Folge hat, dass der Client-Rechner
dem Server-Rechner signalisiert, dass die Daten unter Einsatz der
Puffer niedriger Priorität übertragen
werden sollen. Um dieses zu vermeiden und die Frequenz zu reduzieren,
mit der Datenfolgen zwischen den Puffern hin- und hergeschaltet
werden, wird durch den Client-Rechner die Wiedergaberate auf der
Basis eines Algorithmus angehoben, der von der unmittelbaren mittleren
Rate abhängt,
mit der der Wiedergabepuffer gefüllt
wird. Unter der Bedingung, dass die Wiedergaberate sich nicht zu
schnell ändert und
innerhalb bestimmter Grenzen verbleibt, kann die Wiedergabequalität innerhalb
akzeptabler Grenzen gehalten werden. Wenn auf ähnliche Art der Speicherpegel
des lokalen Cache-Speichers abnimmt, so kann die Wiedergaberate
adaptiv zurückgenommen
werden, um die Möglichkeit
zu verringern, dass der untere Schwellenwert erreicht wird. Die
Grenzen der Wiedergaberate können
in Abhängigkeit
von der Übertragungsleistungsfähigkeit
oder Auslastung des Netzes oder durch den Anwender des Client-Rechners
festgelegt werden. Diese Technik ist besonders nützlich bei der Ausstrahlung,
da verschiedene Anwender in den Ausstrahlungsgruppen mit verschiedenen
Auslastungsbedingungen konfrontiert sein können, und die Steuerung der
Server unter diesen Bedingungen kann wenig vorteilhaft sein, es
sei denn, sie ist absolut unumgänglich.
-
Dieser
Ansatz stellt in erster Linie ein Verfahren für die temporäre Verzögerung jeglicher
Aktion außer
derjenigen in dem Client dar, um auf vorübergehende Überlastungen zu reagieren.
Die Vorteile bestehen darin, dass auf kurzfristige Überlastungen reagiert
werden kann, ohne den/die Puffer ändern zu müssen, der/die eingesetzt wird/werden,
um Datenfolgen zu übertragen,
und dass die Anzahl der Steuersignale, die in dieser Phase erzeugt
werden können,
reduziert wird.
-
Ein
weiteres alternatives Verfahren zum Übertragen von Echtzeitdaten
an den Client ist vorstellbar, wenn die Anfrage durch den Client
an den Server zur Initiierung der Übertragung von der Echtzeit-Daten-Ressource zusätzliche
Befehle enthält, die
dafür sorgen,
dass definierte Abschnitte der Echtzeit-Daten-Ressource unter Verwendung
der ausgewählten
Puffer übertragen
werden. Beispielsweise könnte
der Server durch die Anfrage angewiesen werden, eine definierte
Anzahl von Bits unter Verwendung des Puffers hoher Priorität zu übertragen und
dann unter Verwendung des Puffers niedriger Priorität mit der Übertragung
des Restes der Echtzeit-Daten-Ressource zu beginnen. Der Client
würde in
diesem Fall die Kenntnis über
die eigenen Ressourcen und Verarbeitungsgeschwindigkeiten, momentane
Netzleistungsfähigkeit
etc. nutzen, um die Anzahl von Bits festzulegen, die unter Verwendung des
Puffers hoher Priorität übertragen
werden sollen. Damit umgeht man die Notwendigkeit, dass der Client
eine Steuernachricht an den Server senden muss, wenn der Speicherpegel
des lokalen Cache-Speichers den oberen Schwellen wert erreicht. Dieser
Ansatz kann auch eingesetzt werden, wenn eine Rückkehr zu dem Puffer hoher
Priorität
durch den Speicherpegel des lokalen Cache-Speichers veranlasst wird,
wodurch der vorgegebene niedrige Schwellenwert abgesenkt wird. Dabei
fordert der Client, dass ein Anteil der Echtzeit-Daten-Ressource unter
Verwendung des Puffers hoher Priorität übertragen wird, wobei die Größe des Anteils
derart berechnet wird, dass der Speicherpegel des lokalen Cache-Speichers auf etwa
den oberen Schwellenwert zurückgesetzt
wird.
-
Ein
Vorteil dieses Verfahrens besteht darin, dass bei der Rückkehr zum
Einsatz des Puffers hoher Priorität der Server in der Lage ist,
dem/den Netzwerkknoten die Anzahl von Bits mitzuteilen, die unter Verwendung
des Puffers hoher Priorität übertragen werden
würden,
wodurch ausgefeilte Techniken für die
effiziente Kontrolle der Benutzung des Puffers hoher Priorität eingesetzt
werden können.
-
3 zeigt
eine schematische Darstellung eines Kommunikationsnetzes, bei dem
ein Kommunikationsverfahren gemäß einer
alternativen Ausführungsform
der Erfindung eingesetzt werden kann. Der Server-Rechner 10 ist
mit dem Server-Rechner 20 über ein Kommunikationsnetz 130 verbunden.
-
Über das
Kommunikationsnetz 130 können Daten zwischen Computern
verschickt werden, die mit dem Kommunikationsnetz verbunden sind,
und zwar unter Verwendung von Kommunikationsverbindungen, die verschiedenen
Dienstqualitäts-(QoS)Klassen
angehören,
das heißt
einige der Kommunikationsverbindungen bieten eine höhere Klasse
bezüglich
QoS, während
andere der Kommunikationsverbindungen eine niedrigere Klasse von QoS
bieten. Im Allgemeinen gilt, je höher die Ebene der QoS ist,
die bei der Kommunikationsverbindung zur Verfügung gestellt wird, desto höher ist
die Ebene der Ressourcen, die erforderlich sind für die Kommunikationsverbindung.
-
Das
Kommunikationsnetz umfasst wenigstens eine Kommunikationsverbindung 50 hoher
Qualität
zwischen dem Server-Rechner 10 und dem Client-Rechner 20.
Die Kommunikationsverbindungen 50 hoher Qualität bieten
eine garantierte Qualität
bei den Diensten in Bezug auf die Übertragung zwischen Server-Rechner
und Client-Rechner, d. h. sie gehören zu einer höheren Klasse
bezüglich
QoS. Das Kommunikationsnetz umfasst außerdem wenigstens eine Kommunikationsverbindung 60 niedriger
Qualität
zwischen dem Server-Rechner 10 und dem Client-Rechner 20.
Die Kommunikationsverbindungen niedrigerer Qualität bieten
entweder eine garantierte Dienstqualität mit niedrigerem QoS-Pegel
als eine Kommunikationsverbindung hoher Qualität, oder es werden Daten auf
der Basis des "geringsten
Aufwands" übermittelt,
d. h. mit einer niedrigen Klasse von QoS.
-
Auf ähnliche
Art, wie sie oben beschrieben wurde, werden Daten von dem Server-Rechner 10 unter
Verwendung der Kommunikationsverbindung 50 hoher Qualität auf Anfrage
von dem Client-Rechner, ihm von dem Server-Rechner eine Echtzeit-Daten-Ressource
zu schicken, an den Client-Rechner 20 übertragen. Wenn die Datenfolge
an den Client-Rechner mit einer größeren Rate als der Wiedergaberate
der Echtzeit-Daten-Ressource übermittelt wird,
so werden die "Überschuss"-Daten in einem lokalen
Cache-Speicher in dem Client-Rechner
gespeichert. Um zu vermeiden, dass der lokale Cache-Speicher überläuft, sendet
der Client-Rechner eine Steuernachricht an den Server-Rechner, wenn ein
oberer Schwellenwert bezüglich
der Cache-Kapazität
erreicht wird. Die Steuernachricht veranlasst den Server-Rechner,
die Datenübertragung
von der Kommunikationsverbindung hoher Qualität auf eine Kommunikationsverbindung
niedriger Qualität
umzuschalten. Wenn die Datenausgaberate der Kommunikationsverbindung
niedriger Qualität
ausreicht, so wird es für
den Client-Rechner möglich,
die Gesamtheit der Echtzeit-Daten-Ressource zu empfangen und wiederzugeben.
Wenn die Datenausga berate der Kommunikationsverbindung niedriger
Qualität
jedoch erheblich geringer ist als die Wiedergaberate der Echtzeit-Daten-Ressource, so kann
ein niedriger Schwellenwert der Kapazität des lokalen Cache-Speichers
erreicht werden. Wenn dies eintritt, so wird, um zu verhindern,
dass der lokale Cache-Speicher geleert wird und die Wiedergabe der
Echtzeit-Daten-Ressource unterbrochen wird, eine weitere Steuernachricht
von dem Client-Rechner an den Server-Rechner gesendet. Diese Steuernachricht veranlasst
den Server-Rechner,
die Datenübertragung
von der Kommunikationsverbindung niedriger Qualität auf eine
Kommunikationsverbindung hoher Qualität umzuschalten, so dass Daten
mit einer Rate an den Client ausgegeben werden, die größer als
die Wiedergaberate für
die Echtzeit-Daten-Ressource ist.
Das Umschalten zwischen Kommunikationsverbindungen hoher Qualität und niedriger
Qualität
(und umgekehrt) kann so oft wiederholt werden, wie es erforderlich
ist, um eine Echtzeit-Daten-Ressource von dem Server-Rechner an
den Client-Rechner zu übermitteln.
-
Alternativ
kann der Server-Rechner Daten an den Client-Rechner unter Verwendung
zunächst der
Kommunikationsverbindung niedriger Qualität übermitteln und dann auf eine
Kommunikationsverbindung hoher Qualität umschalten.
-
Das
Kommunikationsnetz 130 kann ein ATM-(Asynchronous Transfer
Mode)Netz sein, was ein verbindungsbasierendes Netz ist, und in
diesem Fall können
die Kommunikationsverbindungen hoher Qualität in Form von einer virtuellen
Vermittlung (Switched Virtual Circuit, SVC) vorliegen, und die Kommunikationsverbindungen
niedriger Qualität können durch Übertragung
von Daten mittels Verbindungen auf der Basis verfügbarer Bit-Rate
(Available Bit Rate, ABR) oder Verbindungen mit konstanter Bit-Rate
(Constant Bit Rate, CBR) bei niedriger Übertragungsrate erfolgen.
-
Bei
dem Kommunikationsnetz können
Internet-Arbeitsprotokolle eingesetzt werden (d. h. ein verbindungsloses
Netz), und die Kommunikationsverbindungen hoher Qualität können mit
dem Ressourcen-Reservierungsprotokoll
(Resource Reservation Set-up Protocol, RSVP) eingerichtet werden,
und die Kommunikationsverbindungen niedriger Qualität können unter
Einsatz des Internet-Protokolls (Internet Protocol, IP) eingerichtet
werden.
-
Es
versteht sich, dass die obigen Verfahren zum Übertragen und Empfangen von
Daten implementiert werden können,
indem geeignete Computerprogramme (ein geeignetes Computerprogramm) auf
dem Server-Rechner und dem Client-Rechner implementiert werden (wird).
Wenn der Server-Rechner beispielsweise ein WWW-Server ist, dann
können
derartige Programme parallel zu Software-Programmen laufen, die
erforderlich sind, um einen WWW-Server zu betreiben, oder sie können innerhalb
eines derartigen WWW-Server-Programms integriert sein. Wenn der
Client-Rechner ein PC oder ein NC ist, auf dem ein WWW-Browser läuft, so
können (kann)
auf ähnliche
Weise geeignete Programme (ein geeignetes Programm) integriert werden
mit oder parallel laufen zu dem WWW-Browser-Programm. Diese geeigneten
Programme können
auf einem Datenträger
wie zum Beispiel einer Floppy-Disk, einer CD-ROM, einer magneto-optischen
Platte, einer DVD (Digital Versatile Disk), etc. abgespeichert werden. Ähnlich können derartige
Programme über
ein Telekommunikationsnetz zur Verfügung gestellt werden. 2 zeigt
Datenträger 70 und 80,
auf denen geeignete Programme für
Server-Rechner bzw. Client-Rechner abgespeichert sind, und 3 zeigt ähnliche
Datenträger 170 und 180,
auf denen geeignete Programme für
den Server-Rechner bzw. Client-Rechner abgespeichert sind.