-
GEBIET DER
ERFINDUNG
-
Die
vorliegende Erfindung betrifft ein Verfahren zum Erzeugen einer
Darstellung von Streaming-Media-Daten an einem Cache-Proxyserver,
ein Verfahren zur Datenübertragung
von einem Server-Datenverarbeitungssystem, ein Verfahren zum Ausdünnen von
Frames, ein maschinenlesbares Medium, einen Cache-Proxyserver, ein
Server-Datenverarbeitungssystem, ein Client-Datenverarbeitungssystem,
und insbesondere das Gebiet der Multimedia-Datenübertragung. Im Besonderen betrifft
die vorliegende Erfindung in einer beispielhaften Ausführungsform
die Multimedia-Datenübertragung
von Echtzeit-Transferprotokoll (Real-time Transfer Protocol; RTP)-Paketen unter Verwendung
eines Echtzeit-Streaming-Protokolls (Real Time Streaming Protocol;
RTSP) in einer Computernetzumgebung.
-
EINFÜHRUNG UND HINTERGRUND DER ERFINDUNG
-
Verfahren
zum Übertragen
von Daten sind allgemein bekannt und werden heutzutage routinemäßig dazu
verwendet, verschiedene Multimedia-Daten wie etwa Text, Grafik,
Audio, Video, Abbildungen usw. über
Computernetze zu verschicken, die sich in verschiedenen Teilen der
Welt befinden. Im Allgemeinen erfordert der Übertragungsvorgang sowohl Hardware
als auch Software für
die Erfüllung seiner
Funktion. Typischerweise umfasst die Hardware verschiedene Arten
von PCs und handgehaltenen Vorrichtungen zum Senden oder Empfangen
von Multimedia-Daten. Diese Vorrichtungen laufen unter Steuerung
durch ein Betriebssystem und verwenden Multimedia-Anwendungssoftwareprogramme.
Wie auf diesem technischen Gebiet bekannt ist, sind Streaming-Media-Daten
solche Daten, die an ein empfangendes Computersystem übertragen
und (üblicherweise
nach einer kurzzeitigen Zwischenspeicherung an dem empfangenden
System) dargeboten und daraufhin an dem empfangenden System verworfen
(nicht gespeichert) werden.
-
Derzeit
werden Daten in Form von Paketen von einer Multimedia-Vorrichtung
zu einer anderen gesendet. In den Datenpaketen muss eine große Menge
von Informationen in Echtzeit gesendet werden, was zu einer hohen
Belastung der Systeme führt.
Streaming-Media-Daten wie etwa Real-Audio-Daten in dem von Real
Networks spezifizierten Streaming-Media-Format werden in vielen
Fällen
in Fast-Echtzeit über
das Internet versendet.
-
Bei
einem Lösungsansatz
sind die bei der Datenübertragung
von Streaming-Media involvierten Komponenten als ein Server (der
als Ursprungs-Server bezeichnet werden kann), ein Cache-Proxyserver,
und ein Client bekannt. Diese Komponenten kommunizieren in verschiedenen
Kombinationen zum Übertragen
von Datenpaketen in Echtzeit miteinander. Die Kommunikationsverbindung,
die derzeit zwischen den Komponenten vorhanden ist, verwendet Echtzeit-Transferprotokolle
(RTP) und Echtzeit-Streaming-Protokolle (RTSP), um miteinander zu
kommunizieren und untereinander Pakete zu versenden. Damit dieser
Lösungsansatz
funktioniert, muss ein Cache-Proxyserver mit dem Systemserver kommunizieren,
einen Strom von RTP-Datenpaketen empfangen,
und die in den RTP-Datenpaketen enthaltenen Informationen an einen
Client transferieren. 1a zeigt ein Beispiel für ein früheres Verfahren, bei
dem ein Cache-Proxyserver Streaming-Media-Daten empfängt und
diese Daten einem Client zur Verfügung stellt. Um seine Funktion
ordnungsgemäß und wirksam
zu erfüllen,
benötigt
der Cache-Proxyserver mehrere Informationen vom Server, um einen
RTP-Strom einfach und zuverlässig
Cache-speichern zu können.
-
Die
Veröffentlichung "Internet Telephony
architecture and protocols – an
IETF perspective" von Schulzrinne
et al., 11.02.1999, zeigt ein RTP-System mit seinen Vorspannerweiterungen,
wobei SIP verwendet wird, um Daten über Proxies anzufordern.
-
Ein
Problem mit dem derzeitigen Lösungsansatz
ist es, dass er nicht in der Lage ist, einige der wesentlichen erforderlichen
Informationen zur Verfügung
zu stellen, wie etwa die Datenpaket-Übertragungszeit und die Information über den
Videopaket-Frame-Typ,
die ein Cache-Proxy benötigt,
um effektiv zu arbeiten. Diese Informationen ermöglichen es einem Cache-Proxyserver,
eine reibungslose Lieferung von Paketen an seinen Client zur Verfügung zu
stellen infolge der Kenntnis des Zeitpunktes, an dem ein RTP-Datenpaket
gesendet werden sollte, und des Typs Video-Frame, der gesendet wird, ohne das spezifische
Payload-Format zu kennen. Ein weiteres Problem mit dem derzeitigen
Lösungsansatz
ist es, dass er nicht in der Lage ist, dem Cache-Proxyserver mehrere
nicht miteinander in Verbindung stehende Daten im Rahmen einer Sendung
zur Verfügung
zu stellen. Darüber
hinaus kann es vorkommen, dass Pakete von dem Server "verlorengehen" und nie am Cache-Proxyserver
ankommen. Des Weiteren gibt es normalerweise keine Möglichkeit,
am Cache-Proxyserver
eine komplette, "unverfälschte" Kopie wieder herzustellen.
-
Server
des Standes der Technik teilen dem Cache-Proxyserver RTP-Informationen
mit, indem sie Informationen über
einen Cache-Steuervorspann senden. Bei einem Lösungsansatz enthält ein Cache-Steuervorspann
normale Vorspannfelder. Bei einem anderen Lösungsansatz, der sich nicht
mit einer Cache-Steuerung von RTP-Informationen befasst, wurde den
normalen Feldern in einem Header-Erweiterungsformat ein einziger
Typ von zusätzlichen
Informationen hinzugefügt,
ohne den Typ der zusätzlichen
Informationen spezifisch anzugeben. Bei diesem Lösungsansatz kann nur ein einziger
RTP-Erweiterungsgegenstand dem normalem Feld des Vorspanns hinzugefügt und jeweils
gesendet werden.
-
Ein
Problem bei der Verwendung dieses eingeschränkten, nicht-erweiterbaren
Lösungsansatzes liegt
darin, dass ein Server nicht in der Lage ist, jeweils mehrere Sätze von
bezugslosen Daten anzuhängen,
um sie an den Cache-Proxyserver zu senden. Ein weiteres Problem
mit diesem Lösungsansatz
ist es, dass die bei diesen Verfahren verwendeten Header-Erweiterungen
noch nicht in der Lage sind, alle Informationen zur Verfügung zu
stellen, die ein Cache-Proxyserver benötigt, um einen Strom ordnungsgemäß zu cachen
und den Strom ordnungsgemäß zu übertragen.
Wieder ein anderes Problem mit diesem Lösungsansatz liegt darin, dass es
keine Möglichkeit
gibt, die jeweilige Erweiterung unabhängig von anderen möglichen
Erweiterungen zu identifizieren.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Die
vorliegende Erfindung stellt mehrere Verfahren, Vorrichtungen und
maschinenlesbare Medien gemäß der Definition
durch die Gegenstände
der Patentansprüche
1, 7, 17, 18, 23, 25, 26, 31 und 33 zur Verfügung. Hierdurch können auf
vorteilhafte Weise Multimedia-Daten unter Verwendung von Streaming-Media-Protokollen
wie etwa Echtzeit-Transferprotokollen (RTP) und Echtzeit-Streaming-Protokollen
(RTSP) in einer Computernetzumgebung übertragen werden. Bei einer
beispielhaften Ausführungsform
wird eine Anforderung von RTP-Daten vom Cache-Proxyserver an den
Server gesendet. Die Anforderung kann sich auf einen spezifischen
Datentyp und die damit in Verbindung stehenden Erweiterungen oder
auf mehrere bezugslose Typen von Daten und die damit in Verbindung
stehenden Erweiterungen beziehen. Der Server antwortet auf die Anforderung,
indem er seine Unterstützung
fiür die
angeforderten RTP-Daten anzeigt. Der Cache-Proxyserver bestimmt
auf der Grundlage der von dem Server zur Verfügung gestellten Antwort, ob
die Datenübertragung
fortgeführt
oder beendet werden soll. Falls bestimmt wird, dass der Datenübertragungsvor gang weitergeführt werden
soll, informiert der Cache-Proxy den Server dahingehend, die angeforderten
und unterstützten
RTP-Daten zu senden. Der Server sendet die angeforderten Daten in
einem variablen und erweiterbaren Vorspannformat.
-
Bei
einer anderen Ausführungsform
führt der Cache-Proxyserver
die Anforderung und den Empfang von Daten bezüglich der Paketübertragungszeit und/oder
des Paket-Frame-Typs vom Server durch. Der Cache-Proxyserver verwendet
die Frame-Typ-Daten,
um auf der Grundlage der Fähigkeit des
Client, Lasten zu bestimmten Zeiten zu bewältigen, mit dem Client zu kommunizieren
und Frames zur Verfügung
zu stellen. Die Übertragungszeit-Daten
werden auch von dem Cache-Proxy verwendet, um für eine reibungslose Zustellung
von Paketen Pakete lokal zu speichern und diese Pakete zu geeigneten
Zeitpunkten an den Client zu liefern.
-
Auf
vorteilhafte Weise umfasst ein Verfahren zum Betreiben eines Cache-Proxyservers:
Senden
einer Anforderung von Streaming-Media-Daten an einen Server, wobei
die Anforderung eine Anforderung von Daten beinhaltet, die mit den
Streaming-Media-Daten
im Zusammenhang stehen, wobei die Anforderung eine Kennung beinhaltet,
die einen von mehreren möglichen
Datentypen darstellt, die mit den Streaming-Media-Daten im Zusammenhang stehen;
Empfangen
einer Antwort, welche Unterstützung
für die
angeforderten Streaming-Media-Daten
anzeigt, vom Server;
Informieren des Servers, die unterstützten Daten,
die mit den Streaming-Media-Daten im Zusammenhang stehen, zu senden;
Empfangen
der Streaming-Media-Daten vom Server;
Empfangen einer Anforderung
vom Client, Streaming-Media-Daten zu senden; und Senden der angeforderten
Streaming-Media-Daten an den Client.
-
Auf
vorteilhafte Weise verwendet das Empfangen und Senden ein Echtzeit-Transportprotokoll (RTP).
-
Auf
vorteilhafte Weise findet das Empfangen von Streaming-Media-Daten
vom Server in einem erweiterbaren erweiterten Vorspannformat statt.
-
Auf
vorteilhafte Weise kann das Senden einer Anforderung einen oder
mehrere verschiedene und bezugslose Typen von jeweils zu sendenden Streaming-Media-Daten
betreffen.
-
Auf
vorteilhafte Weise beinhaltet die Antwort vom Server jeweils eine
Antwort für
jeden unterstützten
Typ von Streaming-Media und keine Antwort für jegliche nichtunterstützte Typen
von Streaming-Media-Daten.
-
Auf
vorteilhafte Weise wird das erweiterbare erweiterte Vorspannformat
vor dem Senden an den Client angehängt.
-
Auf
vorteilhafte Weise umfasst das Anhängen das Herausnehmen des Namens-
und ID-Teils des erweiterbaren erweiterten Vorspanns.
-
Auf
vorteilhafte Weise umfasst das Verfahren ferner eine Bestimmung,
ob ein angeforderter Typ von Streaming-Media-Daten, den ein Cache-Proxyserver
für die
Durchführung
seiner Vorgänge
benötigt,
in der Antwort des Servers fehlt.
-
Auf
vorteilhafte Weise umfasst das Verfahren ferner das Beenden des
Datenübertragungsvorganges,
wenn der angeforderte Typ von Streaming-Media-Daten in der Antwort
des Servers fehlt und für den
Datenübertragungsvorgang
von entscheidender Wichtigkeit ist.
-
Auf
vorteilhafte Weise umfasst ein Verfahren zum Erweitern eines RTP-Vorspanns:
Hinzufügen einer
ersten RTP-Untererweiterungs-ID zu einem RTP-Vorspann;
Definieren
einer Länge
der ersten RTP-Untererweiterung, indem eine Untererweiterungslänge zur
Verfügung
gestellt wird;
Liefern von Daten, die der RTP-Untererweiterungs-ID entsprechen,
innerhalb der für
die erste RTP-Untererweiterung definierten Länge; und
Anfügen von
weiteren RTP-Untererweiterungen nach der ersten RTP-Untererweiterung.
-
Auf
vorteilhafte Weise ist die Länge
der RTP-Untererweiterung durch eine ganze Zahl von 32Bit-Wörtern definiert.
-
Auf
vorteilhafte Weise folgt die erste RTP-Untererweiterung unmittelbar
auf den RTP-Vorspann.
-
Auf
vorteilhafte Weise befinden sich unmittelbar nach der RTP-Untererweiterungslänge die RTP-Untererweiterungsdaten,
und unmittelbar vor ihr die RTP-Untererweiterungs-ID.
-
Auf
vorteilhafte Weise enthält
die RTP-Untererweiterung Übertragungszeitinformationen
für jedes
RTP-Paket.
-
Auf
vorteilhafte Weise enthält
die RTP-Untererweiterung ständige
ID-Informationen.
-
Auf
vorteilhafte Weise enthält
die RTP-Untererweiterung Frame-Typ-Informationen.
-
Auf
vorteilhafte Weise ist der Frame-Typ ein unsignierter ganzzahliger
16Bit-Wert, der für
jeden Wert einen verschiedenen Frame darstellt.
-
Auf
vorteilhafte Weise umfassen die unsignierte ganze Zahl und der Frame-Typ:
Zuordnen
eines ganzzahligen Wertes "0" zu einem unbekannten
Frame-Typ; eines ganzzahligen Wertes "1" zu
einem Schlüssel-Frame-Typ;
eines ganzzahligen Wertes "2" zu einem p-Frame-Typ;
und eines ganzzahligen Wertes "3" zu einem b-Frame-Typ.
-
Auf
vorteilhafte Weise besitzt ein Schlüssel-Frame eine höchste Priorität vor allen
anderen Frames.
-
Auf
vorteilhafte Weise besitzt ein p-Frame eine niedrigere Priorität als ein
Schlüssel-Frame und eine höhere Priorität als ein
b-Frame.
-
Auf
vorteilhafte Weise besitzt ein b-Frame eine niedrigere Priorität als ein
p-Frame.
-
Auf
vorteilhafte Weise besitzt ein b-Frame eine niedrigere Priorität als ein
Schlüssel-Frame.
-
Auf
vorteilhafte Weise besitzt ein unbekannter Frame entweder eine höhere oder
eine niedrigere Priorität
als ein Schlüssel-Frame,
p-Frame und b-Frame.
-
Auf
vorteilhafte Weise besitzt ein Schlüssel-Frame eine höhere Priorität als p-Frames,
b-Frames, oder jegliche andere Frames.
-
Auf
vorteilhafte Weise umfasst ein Verfahren zum Verhandeln über verschiedene
Typen von Streaming-Media-Daten durch den Server:
Empfangen
einer Anforderung von einem oder mehreren Typen von Streaming-Media-Daten
von einem Cache-Proxyserver oder einem Client, wobei die Anforderung
eine Anforderung von Daten beinhaltet, die mit den Streaming-Media-Daten
im Zusammenhang stehen, wobei die Anforderung eine Kennung beinhaltet,
welche einen von mehreren möglichen
Datentypen darstellt, die mit den Streaming-Media-Daten im Zusammenhang
stehen;
Bestimmen, ob angeforderte Typen von Streaming-Media-Daten
durch den Server unterstützt
werden; und
Beantworten der Anforderung mit einer Antwort,
welche die Fähigkeit
des Servers zum Unterstützen
der Anforderung anzeigt.
-
Auf
vorteilhafte Weise umfasst das Verfahren ferner das Empfangen einer
Anforderung, unterstützte
RTP-Erweiterungen an den Cache-Proxy oder den Client zu senden.
-
Auf
vorteilhafte Weise umfasst das Verfahren ferner die Beantwortung
einer Sendeanforderung und das Senden aller unterstützten und
angeforderten Erweiterungen.
-
Auf
vorteilhafte Weise umfasst das Verfahren ferner das Empfangen eines
Befehls, der den Verhandlungsvorgang beendet.
-
Auf
vorteilhafte Weise umfasst ein Verfahren zum Verhandeln über verschiedene
Typen von Streaming-Media-Daten durch den Cache-Proxyserver:
Senden
einer Anforderung von einem oder mehreren Typen von in Beziehung
stehenden oder bezugslosen Streaming-Media-Daten an einen Server,
wobei die Anforderung eine Anforderung von Daten beinhaltet, die
mit den Streaming-Media-Daten im Zusammenhang stehen, wobei die
Anforderung eine Kennung beinhaltet, welche einen von mehreren möglichen
Datentypen darstellt, die mit den Streaming-Media-Daten im Zusammenhang
stehen;
Empfangen einer Antwort auf jeden angeforderten Typ
von Streaming-Media-Daten; und
Entscheiden, ob der Verhandlungsvorgang
im Zusammenhang mit Streaming-Media-Daten weitergeführt oder beendet werden soll.
-
Auf
vorteilhafte Weise umfasst das Entscheiden:
Bestimmen, ob ein
angeforderter Typ von Streaming-Media-Daten von dem Server nicht
unterstützt wird;
Überprüfen, ob
ein nicht-unterstützter
Typ von Streaming-Media-Daten für
Cache-Proxyserver-Operationen
wesentlich ist;
Senden eines Ausführungsbefehls an den Server.
-
Auf
vorteilhafte Weise wird das Bestimmen von unterstützten Typen
von Streaming-Media-Daten mittels
einer Überprüfung durchgeführt, ob
eine Antwort in Form eines Echos oder in einer anderen Form für den angeforderten
Typ von Streaming-Media-Daten
gesendet wurde.
-
Auf
vorteilhafte Weise wird der Ausführungsbefehl
auf der Grundlage von Resultaten der Überprüfung gesendet, ob ein nicht-unterstützter Typ
von Streaming-Media-Daten
für Cache-Proxyserver-Operationen
wesentlich ist.
-
Auf
vorteilhafte Weise ist die Entscheidung, den Verhandlungsvorgang
zu beenden.
-
Auf
vorteilhafte Weise ist die Entscheidung, mit dem Verhandlungsvorgang
fortzufahren und den Server aufzufordern, restliche unterstützte Typen
von Streaming-Media-Daten zu senden.
-
Auf
vorteilhafte Weise umfasst ein Verfahren zum Ausdünnen von
Frames durch den Proxy-Server:
Empfangen einer Nachricht von
einem Client, wobei die Nachricht eine Notwendigkeit anzeigt, Streaming-Media-Daten,
die an den Client gesendet werden, auszudünnen;
Bewerten der Priorität von Streaming-Media-Daten; und
Senden
nur von ausgewählten
Streaming-Media-Daten.
-
Auf
vorteilhafte Weise umfasst das Bewerten:
Benennen von unsignierten
ganzen Zahlen für
Frame-Typen;
Zuordnen eines ganzzahligen Wertes "0" zu einem unbekannten Frame-Typ; eines
ganzzahligen Wertes "1" zu einem Schlüssel-Frame-Typ;
eines ganzzahligen Wertes "2" zu einem p-Frame-Typ;
und eines ganzzahligen Wertes "3" zu einem b-Frame-Typ.
-
Auf
vorteilhafte Weise besitzt ein Schlüssel-Frame eine höchste Priorität vor allen
anderen Frames.
-
Auf
vorteilhafte Weise besitzt ein p-Frame eine niedrigere Priorität als ein
Schlüssel-Frame und eine höhere Priorität als ein
b-Frame.
-
Auf
vorteilhafte Weise besitzt ein b-Frame eine niedrigere Priorität als ein
p-Frame.
-
Auf
vorteilhafte Weise besitzt ein b-Frame eine niedrigere Priorität als ein
Schlüssel-Frame.
-
Auf
vorteilhafte Weise besitzt ein unbekannter Frame entweder eine höhere oder
eine niedrigere Priorität
als ein Schlüssel-Frame,
p-Frame oder b-Frame.
-
Auf
vorteilhafte Weise besitzt ein Schlüssel-Frame eine höhere Priorität als p-Frames,
b-Frames, oder jegliche andere Frames.
-
Auf
vorteilhafte Weise umfasst das Verfahren ferner:
Empfangen
einer zweiten Nachricht von einem Client, Streaming-Media-Daten
weiter auszudünnen;
Verarbeiten
der Nachricht und Entfernen von mehr ausgewählten Streaming-Media-Daten, und Senden von
Streaming-Media-Daten mit einer höheren Priorität.
-
Auf
vorteilhafte Weise ist der ausgewählte Streaming-Media-Frame,
der entfernt wird, ein b-Frame, und es werden Streaming-Media-Daten
mit einer höheren
Priorität
als derjenigen eines b-Frame an den Client gesendet.
-
Auf
vorteilhafte Weise sind die Streaming-Media-Daten, die entfernt
werden, p-Frames und b-Frames, und es werden Frames mit einer höheren Priorität als derjenigen
von sowohl p-Frames als auch b-Frames an den Client gesendet.
-
Auf
vorteilhafte Weise umfasst ein Verfahren zum Ausdünnen von
Frames durch den Client:
Senden einer Nachricht an einen Cache-Proxyserver,
wobei die Nachricht eine Notwendigkeit anzeigt, Streaming-Media-Daten,
die an dem Client empfangen werden, auszudünnen;
Empfangen von Media
zurück
vom Cache-Proxyserver, deren Ordnung höheren als diejenige von Streaming-Media-Daten
niederer Ordnung ist.
-
Auf
vorteilhafte Weise umfasst das Verfahren ferner:
Senden einer
darauf folgenden Nachricht von einem Client, Streaming-Media-Daten
weiter auszudünnen;
Empfangen
von Streaming-Media-Daten, deren Ordnung höher als diejenige von vorausgehend
empfangenen Streaming-Media-Daten ist.
-
Auf
vorteilhafte Weise umfasst das Verfahren ferner:
Zuordnen einer
unsignierten ganzen Zahl zu einem Frame, der mit Streaming-Media-Daten im Zusammenhang
steht, wobei das Zuordnen ferner umfasst: Zuordnen eines ganzzahligen
Wertes "0" zu einem unbekannten
Frame-Typ; eines ganzzahligen Wertes "1" zu
einem Schlüssel-Frame-Typ;
eines ganzzahligen Wertes "2" zu einem p-Frame-Typ;
und eines ganzzahligen Wertes "3" zu einem b-Frame-Typ.
-
Auf
vorteilhafte Weise besitzt ein Schlüssel-Frame eine höchste Priorität vor allen
anderen Frames.
-
Auf
vorteilhafte Weise besitzt ein p-Frame eine niedrigere Priorität als ein
Schlüssel-Frame und eine höhere Priorität als ein
b-Frame.
-
Auf
vorteilhafte Weise besitzt ein b-Frame eine niedrigere Priorität als ein
p-Frame.
-
Auf
vorteilhafte Weise besitzt ein b-Frame eine niedrigere Priorität als ein
Schlüssel-Frame.
-
Auf
vorteilhafte Weise besitzt ein unbekannter Frame entweder eine höhere oder
eine niedrigere Priorität
als ein Schlüssel-Frame,
p-Frame oder b-Frame.
-
Auf
vorteilhafte Weise besitzt ein Schlüssel-Frame eine höhere Priorität als p-Frames,
b-Frames, oder jegliche andere Frames.
-
Auf
vorteilhafte Weise beinhaltet das Senden das Entfernen von p-Frames
und das Senden von ausgewählten
Streaming-Media-Daten einer höheren
Ordnung als p-Frames
an den Client.
-
Auf
vorteilhafte Weise beinhaltet das Senden das Entfernen sowohl von
p-Frames als auch b-Frames und das Senden von ausgewählten Streaming-Media-Daten
einer höheren
Ordnung als sowohl p-Frames als auch b-Frames.
-
Auf
vorteilhafte Weise umfasst ein maschinenlesbares Medium, das ausführbare Anweisungen zur
Verfügung
stellt, die bei ihrer Ausführung
durch eine Gruppe von Prozessoren veranlassen, dass die Gruppe von
Prozessoren Operationen zum Erzeugen von Streaming-Media-Daten an
einem Cache-Proxyserver ausführen:
Übertragen
einer Anforderung von Streaming-Media-Daten, die an den Cache-Proxyserver
geliefert werden sollen;
Übertragen
einer Anforderung von Daten, die mit den Streaming-Media-Daten im
Zusammenhang stehen, wobei die Anforderung eine Kennung beinhaltet,
die einen von mehreren möglichen
Typen von Daten, die mit den Streaming-Media-Daten im Zusammenhang stehen,
darstellt;
Empfangen der Streaming-Media-Daten und Speichern
der Streaming-Media-Daten auf einer Speichervorrichtung, die von
dem Cache-Proxyserver gesteuert werden kann; und
Empfangen
der Daten, die mit den Streaming-Media-Daten im Zusammenhang stehen.
-
Auf
vorteilhafte Weise umfasst das maschinenlesbare Medium ferner:
Speichern
der Daten, die mit den Streaming-Media-Daten im Zusammenhang stehen,
in der Speichervorrichtung.
-
Auf
vorteilhafte Weise umfasst ein maschinenlesbares Medium, das ausführbare Anweisungen zur
Verfügung
stellt, die bei ihrer Ausführung
durch eine Gruppe von Prozessoren veranlassen, dass die Gruppe von
Prozessoren Operationen zum Übertragen
von Daten von einem Server-Datenverarbeitungssystem ausführt:
Empfangen
einer Anforderung von Streaming-Media-Daten, wobei die Anforderung
eine Anforderung von Daten beinhaltet, die mit den Streaming-Media-Daten
im Zusammenhang stehen, wobei die Anforderung eine Kennung beinhaltet,
die einen von mehreren möglichen
Typen von Daten, die mit den Streaming-Media-Daten im Zusammenhang
stehen, darstellt;
Antworten auf die Anforderung mit einer
Antwort, welche eine Fähigkeit
des Servers zum Unterstützen
der Anforderung anzeigt; und
Senden der angeforderten Daten,
die mit den Streaming-Media-Daten im Zusammenhang stehen.
-
Auf
vorteilhafte Weise verwendet das Senden ein Echtzeit-Transportprotokoll
(RTP).
-
Auf
vorteilhafte Weise kann die Anforderung von einem Cache-Proxyserver
oder einem Client durchgeführt
werden.
-
Auf
vorteilhafte Weise findet das Antworten mit einer Antwort nur statt,
wenn der Server die Anforderung unterstützt.
-
Auf
vorteilhafte Weise umfasst das maschinenlesbare Medium ferner das
Senden der angeforderten Daten, die mit dem Übertragungsprotokoll im Zusammenhang
stehen, in einem erweiterbaren erweiterten Vorspannformat.
-
Auf
vorteilhafte Weise beinhaltet der erweiterbare erweiterte Vorspann
einen Erweiterungsnamen und eine Erweiterungsidentifikation (ID),
die mit jeder separaten RTP-Erweiterung
im Zusammenhang stehen.
-
Auf
vorteilhafte Weise kann die Anforderung jeweils einen oder mehrere Übertragungsprotokolldatentypen
betreffen.
-
Auf
vorteilhafte Weise beinhaltet die Antwort durch den Server jeweils
eine Antwort für
alle unterstützten Übertragungsprotokolldaten
und keine Antwort für
nichtunterstützte Übertragungsprotokolldaten.
-
Auf
vorteilhafte Weise umfasst das maschinenlesbare Medium ferner das
Empfangen einer Anforderung, die Übertragungsprotokolldaten nach
dem Senden einer Antwort für
unterstützte
Daten zu senden, und nur die angeforderten und unterstützten Übertragungsprotokolldaten
zu senden.
-
Auf
vorteilhafte Weise umfasst ein maschinenlesbares Medium, das ausführbare Anweisungen zur
Verfügung
stellt, die bei ihrer Ausführung
durch eine Gruppe von Prozessoren veranlassen, dass die Gruppe von
Prozessoren Datenübertragungs-/Empfangsoperationen
von einem Server ausführt:
Senden
einer Anforderung von Streaming-Media-Daten an den Server, wobei
die Anforderung eine Anforderung von Daten beinhaltet, die mit den
Streaming-Media-Daten
im Zusammenhang stehen, wobei die Anforderung eine Kennung beinhaltet,
die einen von mehreren möglichen
Typen von Daten, die mit den Streaming-Media-Daten im Zusammenhang stehen, darstellt;
Empfangen
einer Antwort von dem Server, welche Unterstützung für die angeforderten Streaming-Media-Daten
anzeigt;
Informieren des Servers, die unterstützten Daten,
die mit den Streaming-Media-Daten im Zusammenhang stehen, zu senden;
Empfangen
der unterstützten
Streaming-Media-Daten vom Server;
Empfangen einer Anforderung
von einem Client, Streaming-Media-Daten zu senden; und
Senden
der angeforderten Streaming-Media-Daten an den Client.
-
Auf
vorteilhafte Weise verwendet das Empfangen und Senden ein Echtzeit-Transportprotokoll (RTIP).
-
Auf
vorteilhafte Weise findet das Empfangen von Streaming-Media-Daten
vom Server in einem erweiterbaren erweiterten Vorspannformat statt.
-
Auf
vorteilhafte Weise kann das Senden einer Anforderung einen oder
mehrere verschiedene und bezugslose Typen von jeweils zu sendenden Streaming-Media-Daten
betreffen.
-
Auf
vorteilhafte Weise beinhaltet die Antwort vom Server eine Antwort
für jeden
unterstützten
Typ von Streaming-Media und keine Antwort für jegliche nichtunterstützte Typen
von Streaming-Media-Daten.
-
Auf
vorteilhafte Weise wird das erweiterbare erweiterte Vorspannformat
vor dem Senden an den Client angehängt.
-
Auf
vorteilhafte Weise umfasst das Anhängen das Herausnehmen des Namens-
und ID-Teils des erweiterbaren erweiterten Vorspanns.
-
Auf
vorteilhafte Weise umfasst das maschinenlesbare Medium ferner eine
Bestimmung, ob ein angeforderter Typ von Streaming-Media-Daten,
den ein Cache-Proxyserver für
die Durchführung
seiner Vorgänge
benötigt,
in der Antwort des Servers fehlt.
-
Auf
vorteilhafte Weise umfasst das maschinenlesbare Medium ferner das
Beenden des Datenübertragungsvorgangs,
wenn der angeforderte Typ von Streaming-Media-Daten in der Antwort des Servers fehlt
und für
den Datenübertragungsvorgang von
entscheidender Wichtigkeit ist.
-
Auf
vorteilhafte Weise umfasst ein maschinenlesbares Medium, das ausführbare Anweisungen zur
Verfügung
stellt, die bei ihrer Ausführung
durch eine Gruppe von Prozessoren veranlassen, dass die Gruppe von
Prozessoren RTP-Vorspann-Erweiterungsoperationen ausführt:
Hinzufügen einer
ersten RTP-Untererweiterungs-ID zu einem RTP-Vorspann;
Definieren
einer Länge
der ersten RTP-Untererweiterung, indem eine Untererweiterungslänge zur
Verfügung
gestellt wird;
Liefern von Daten, die der RTP-Untererweiterungs-ID entsprechen,
innerhalb der für
die erste RTP-Untererweiterung definierten Länge; und
Anfügen von
weiteren RTP-Untererweiterungen nach der ersten RTP-Untererweiterung.
-
Auf
vorteilhafte Weise ist die Länge
der RTP-Untererweiterung durch eine ganze Zahl von 32Bit-Wörtern definiert.
-
Auf
vorteilhafte Weise folgt die erste RTP-Untererweiterung unmittelbar
auf den RTP-Vorspann.
-
Auf
vorteilhafte Weise befinden sich unmittelbar nach der RTP-Untererweiterungslänge die RTP-Untererweiterungsdaten,
und unmittelbar vor ihr die RTP-Untererweiterungs-ID.
-
Auf
vorteilhafte Weise enthält
die RTP-Untererweiterung Übertragungszeitinformationen
für jedes
RTP-Paket.
-
Auf
vorteilhafte Weise enthält
die RTP-Untererweiterung ständige
ID-Informationen.
-
Auf
vorteilhafte Weise enthält
die RTP-Untererweiterung RTP-Frame-Typ-Informationen.
-
Auf
vorteilhafte Weise ist der Frame-Typ ein unsignierter ganzzahliger
16Bit-Wert, der für
jeden Wert einen verschiedenen Frame darstellt.
-
Auf
vorteilhafte Weise umfassen die unsignierte ganze Zahl und der Frame-Typ
ferner die Schritte:
Zuordnen eines ganzzahligen Wertes "0" zu einem unbekannten Frame-Typ; eines
ganzzahligen Wertes "1" zu einem Schlüssel-Frame-Typ;
eines ganzzahligen Wertes "2" zu einem p-Frame-Typ;
und eines ganzzahligen Wertes "3" zu einem b-Frame-Typ.
-
Auf
vorteilhafte Weise besitzt ein Schlüssel-Frame eine höchste Priorität vor allen
anderen Frames.
-
Auf
vorteilhafte Weise besitzt ein p-Frame eine niedrigere Priorität als ein
Schlüssel-Frame und eine höhere Priorität als ein
b-Frame.
-
Auf
vorteilhafte Weise besitzt ein b-Frame eine niedrigere Priorität als ein
p-Frame.
-
Auf
vorteilhafte Weise besitzt ein b-Frame eine niedrigere Priorität als ein
Schlüssel-Frame.
-
Auf
vorteilhafte Weise besitzt ein unbekannter Frame entweder eine höhere oder
eine niedrigere Priorität
als ein Schlüssel-Frame,
p-Frame und b-Frame.
-
Auf
vorteilhafte Weise besitzt ein Schlüssel-Frame eine höhere Priorität als p-Frames,
b-Frames, oder jegliche andere Frames.
-
Auf
vorteilhafte Weise umfasst ein maschinenlesbares Medium, das ausführbare Anweisungen zur
Verfügung
stellt, die bei ihrer Ausführung
durch eine Gruppe von Prozessoren veranlassen, dass die Gruppe von
Prozessoren Verhandlungsoperationen für verschiedene Typen von Streaming-Media-Daten durch
einen Server ausführt:
Empfangen
einer Anforderung von einem oder mehreren Typen von Streaming-Media-Daten
von einem Cache-Proxyserver oder einem Client, wobei die Anforderung
eine Anforderung von Daten beinhaltet, die mit den Streaming-Media-Daten
im Zusammenhang stehen, wobei die Anforderung eine Kennung beinhaltet,
welche einen von mehreren möglichen
Typen von Daten darstellt, die mit den Streaming-Media-Daten im Zusammenhang
stehen;
Bestimmen, ob die angeforderten Typen von Streaming-Media-Daten
von dem Server unterstützt
werden; und
Antworten auf die Anforderung mit einer Antwort,
welche eine Fähigkeit
des Servers zum Unterstützen
der Anforderung anzeigt.
-
Auf
vorteilhafte Weise umfasst das maschinenlesbare Medium ferner das
Empfangen einer Anforderung, unterstützte RTP-Erweiterungen an den Cache-Proxy
oder den Client zu senden.
-
Auf
vorteilhafte Weise umfasst das maschinenlesbare Medium ferner die
Beantwortung einer Sendeanforderung und das Senden aller unterstützten und
angeforderten Erweiterungen.
-
Auf
vorteilhafte Weise umfasst das maschinenlesbare Medium ferner das
Empfangen eines Befehls, der den Verhandlungsvorgang beendet.
-
Auf
vorteilhafte Weise umfasst ein maschinenlesbares Medium, das ausführbare Anweisungen zur
Verfügung
stellt, die bei ihrer Ausführung
durch eine Gruppe von Prozessoren veranlassen, dass die Gruppe von
Prozessoren Verhandlungsoperationen für verschiedene Typen von Streaming-Media-Daten durch
einen Cache-Proxyserver ausführt:
Senden
einer Anforderung von einem oder mehreren Typen von in Beziehung
stehenden oder bezugslosen Streaming-Media-Daten an einen Server,
wobei die Anfor derung eine Anforderung von Daten beinhaltet, die
mit den Streaming-Media-Daten im Zusammenhang stehen, wobei die
Anforderung eine Kennung beinhaltet, welche einen von mehreren möglichen
Datentypen darstellt, die mit den Streaming-Media-Daten im Zusammenhang
stehen;
Empfangen einer Antwort auf jeden angeforderten Typ
von Streaming-Media-Daten; und
Entscheiden, ob der Verhandlungsvorgang
im Zusammenhang mit Streaming-Media-Daten weitergeführt oder beendet werden soll.
-
Auf
vorteilhafte Weise umfasst das Entscheiden:
Bestimmen, ob der
angeforderte Typ von Streaming-Media-Daten von dem Server nicht
unterstützt wird;
Überprüfen, ob
der nicht-unterstützte
Typ von Streaming-Media-Daten für
Cache-Proxyserver-Operationen
wesentlich ist; und
Senden eines Ausführungsbefehls an den Server.
-
Auf
vorteilhafte Weise wird das Bestimmen von unterstützten Typen
von Streaming-Media-Daten mittels
einer Überprüfung durchgeführt, ob
eine Antwort in Form eines Echos oder in einer anderen Form für den angeforderten
Typ von Streaming-Media-Daten
gesendet wurde.
-
Auf
vorteilhafte Weise wird der Ausführungsbefehl
auf der Grundlage von Resultaten der Überprüfung gesendet, ob ein nicht-unterstützter Typ
von Streaming-Media-Daten
für Cache-Proxyserver-Operationen
wesentlich ist.
-
Auf
vorteilhafte Weise ist die Entscheidung, den Verhandlungsvorgang
zu beenden.
-
Auf
vorteilhafte Weise ist die Entscheidung, mit dem Verhandlungsvorgang
fortzufahren und den Server aufzufordern, restliche unterstützte Typen
von Streaming-Media-Daten zu senden.
-
Auf
vorteilhafte Weise umfasst ein maschinenlesbares Medium, das ausführbare Anweisungen zur
Verfügung
stellt, die bei ihrer Ausführung
durch eine Gruppe von Prozessoren veranlassen, dass die Gruppe von
Prozessoren Operationen zum Ausdünnen
von Frames durch einen Cache-Proxyserver durchführt:
Empfangen einer Nachricht
von einem Client, Frames in einer Übertragung von Streaming-Media-Daten
von dem Cache-Proxyserver auszudünnen;
Bewerten
der Priorität
von Frames; und
Senden nur von ausgewählten Frames.
-
Auf
vorteilhafte Weise wird die Frame-Priorität bewertet durch Benennen von
unsignierten ganzen Zahlen für
Frame-Typen, wobei die unsignierten ganzen Zahlen aufweisen:
Zuordnen
eines ganzzahligen Wertes "0" zu einem unbekannten
Frame-Typ; eines ganzzahligen Wertes "1" zu
einem Schlüssel-Frame-Typ;
eines ganzzahligen Wertes "2" zu einem p-Frame-Typ;
und eines ganzzahligen Wertes "3" zu einem b-Frame-Typ.
-
Auf
vorteilhafte Weise besitzt ein Schlüssel-Frame eine höchste Priorität vor allen
anderen Frames.
-
Auf
vorteilhafte Weise besitzt ein p-Frame eine niedrigere Priorität als ein
Schlüssel-Frame und eine höhere Priorität als ein
b-Frame.
-
Auf
vorteilhafte Weise besitzt ein b-Frame eine niedrigere Priorität als ein
p-Frame.
-
Auf
vorteilhafte Weise besitzt ein b-Frame eine niedrigere Priorität als ein
Schlüssel-Frame.
-
Auf
vorteilhafte Weise besitzt ein unbekannter Frame entweder eine höhere oder
eine niedrigere Priorität
als ein Schlüssel-Frame,
p-Frame oder b-Frame.
-
Auf
vorteilhafte Weise besitzt ein Schlüssel-Frame eine höhere Priorität als p-Frames,
b-Frames, oder jegliche andere Frames.
-
Auf
vorteilhafte Weise umfasst das maschinenlesbare Medium ferner:
Empfangen
einer zweiten Anforderung von einem Client, Frames weiter auszudünnen;
Verarbeiten
der Anforderung und Entfernen von mehr ausgewählten Frames, und Senden von
Frames mit einer höheren
Priorität.
-
Auf
vorteilhafte Weise ist der ausgewählte Frame, der entfernt wird,
ein p-Frame, und es werden Frames mit einer höheren Priorität als derjenigen
eines ein p-Frame an den Client gesendet.
-
Auf
vorteilhafte Weise sind die ausgewählten Frames, der entfernt
werden, p-Frames und b-Frames, und es werden Frames mit einer höheren Priorität als derjenigen
von sowohl p-Frames als auch b-Frames an den Client gesendet.
-
Auf
vorteilhafte Weise umfasst ein maschinenlesbares Medium, das ausführbare Anweisungen zur
Verfügung
stellt, die bei ihrer Ausführung
durch eine Gruppe von Prozessoren veranlassen, dass die Gruppe von
Prozessoren Operationen zum Ausdünnen
von Frames durch einen Client ausführt:
Senden einer Ausdünnungsnachricht,
die anzeigt, dass keine Frames niederer Ordnung gesendet werden
sollen, an einen Cache-Proxyserver;
Empfangen von Frames, deren
Ordnung höher
als diejenige von Frames niederer Ordnung ist, zurück vom Cache-Proxyserver.
-
Auf
vorteilhafte Weise umfasst das maschinenlesbare Medium ferner:
Senden
einer darauf folgenden Nachricht von einem Client, Frames weiter
auszudünnen;
Empfangen
von Frames einer höheren
Ordnung als derjenigen von vorausgehend empfangenen Frames.
-
Auf
vorteilhafte Weise werden den Frames unsignierte ganze Zahlen zugeordnet,
wobei die unsignierten ganzen Zahlen umfassen:
Zuordnen eines
ganzzahligen Wertes "0" zu einem unbekannten
Frame-Typ; eines ganzzahligen Wertes "1" zu
einem Schlüssel-Frame-Typ;
eines ganzzahligen Wertes "2" zu einem p-Frame-Typ;
und eines ganzzahligen Wertes "3" zu einem b-Frame-Typ.
-
Auf
vorteilhafte Weise besitzt ein Schlüssel-Frame eine höchste Priorität vor allen
anderen Frames.
-
Auf
vorteilhafte Weise besitzt ein p-Frame eine niedrigere Priorität als ein
Schlüssel-Frame und eine höhere Priorität als ein
b-Frame.
-
Auf
vorteilhafte Weise besitzt ein b-Frame eine niedrigere Priorität als ein
p-Frame.
-
Auf
vorteilhafte Weise besitzt ein b-Frame eine niedrigere Priorität als ein
Schlüssel-Frame.
-
Auf
vorteilhafte Weise besitzt ein unbekannter Frame entweder eine höhere oder
eine niedrigere Priorität
als ein Schlüssel-Frame,
p-Frame oder b-Frame.
-
Auf
vorteilhafte Weise besitzt ein Schlüssel-Frame eine höhere Priorität als p-Frames,
b-Frames, oder jegliche andere Frames.
-
Auf
vorteilhafte Weise umfasst das Entfernen das Entfernen von p-Frames
und das Senden von ausgewählten
Frames mit einer höheren
Ordnung als derjenigen von p-Frames
an den Client.
-
Auf
vorteilhafte Weise umfasst das Entfernen das Entfernen sowohl von
p-Frames und b-Frames, und das Senden von ausgewählten Frames mit einer höheren Ordnung
als derjenigen von sowohl p-Frames als auch b-Frames.
-
Weitere
Merkmale und Vorteile der vorliegenden Erfindung ergeben sich aus
der beigefügten Zeichnung
und aus der nachfolgenden ausführlichen Beschreibung.
-
KURZE BESCHREIBUNG DER
ZEICHNUNG
-
Die
vorliegende Erfindung wird durch die Figuren der beigefügten Zeichnung,
in denen gleiche Bezugszeichen ähnliche
Elemente bezeichnen, beispielhaft veranschaulicht und nicht eingeschränkt.
-
1a zeigt
ein Ablaufdiagramm eines Verfahrens des Standes der Technik zum
Transferieren von Streaming-Media-Daten an einen Cache-Proxyserver
und daraufhin an einen Client.
-
1b veranschaulicht
ein Netz von Computersystemen, in dem Mediadaten ausgetauscht und/oder
verarbeitet werden können,
gemäß einer Ausführungsform
der vorliegenden Erfindung.
-
2 veranschaulicht
ein Blockdiagramm eines beispielhaften digitalen Verarbeitungssystems, das
gemäß einer
Ausführungsform
der vorliegenden Erfindung verwendet werden kann.
-
3 veranschaulicht
eine Ausführungsform
eines Verfahrens für
die Kommunikation zwischen einem Server und einem Client unter Verwendung
von RTSP- und RTP-Protokollen.
-
4 veranschaulicht
eine weitere Ausführungsform
eines Verfahrens zur Kommunikation zwischen einem Server, einem
Cache-Proxyserver und einem Client.
-
5 veranschaulicht
eine Ausführungsform
eines RTSP-, RTP-Verhandlungsvorgangs zwischen einem Cache-Proxy
und einem Server.
-
6 veranschaulicht
eine Ausführungsform
einer Beziehung zwischen dem Server, dem Cache-Proxy, und dem Client
während
eines Transfers einer Transmit Time (TT)-Untererweiterung an den Cache-Proxyserver
und seiner Verwendung von TT-Informationen
beim Übertragen
von Streaming-Daten an einen Client.
-
7 veranschaulicht
eine Ausführungsform
des Vorgangs, der während
des Transfers einer Übertragungszeit-Untererweiterung
zwischen Server und Cache-Proxyserver stattfindet.
-
8 veranschaulicht
eine Ausführungsform
des Vorgangs, der während
des Transfers einer Frame-Typ-Untererweiterung zwischen Server und Cache-Proxyserver
stattfindet.
-
9 ist
ein Ablaufdiagramm einer Ausführungsform
einer Operation, um verschiedene Typen von Informationen einem Cache-Proxy
in einem erweiterbaren Vorspannformat zur Verfügung zu stellen.
-
10 veranschaulicht
eine Ausführungsform
einer Beziehung zwischen dem Server, Cache-Proxy, und Client während eines
Transfers einer Frame-Typ-Untererweiterung.
-
11 veranschaulicht
ein Blockdiagramm eines maschinenlesbaren Mediums, das ausführbare Computerprogrammanweisungen
für die
Ausführung durch
einen beispielhaften Cache-Proxyserver speichert und gemäß einer
Ausführungsform
der vorliegenden Erfindung verwendet werden kann.
-
12 veranschaulicht
ein Blockdiagramm eines maschinenlesbaren Mediums, das ausführbare Computerprogrammanweisungen
für die
Ausführung durch
einen beispielhaften Ursprungs-Server (Server) speichert und gemäß einer
Ausführungsform
der vorliegenden Erfindung verwendet werden kann.
-
13 veranschaulicht
ein Blockdiagramm eines maschinenlesbaren Mediums, das ausführbare Computerprogrammanweisungen
für die
Ausführung durch
einen beispielhaften Client speichert und gemäß einer Ausführungsform
der vorliegenden Erfindung verwendet werden kann.
-
DETAILLIERTE BESCHREIBUNG
-
Es
werden ein Verfahren und ein System beschrieben, die eine Multimedia-Datenübertragung unter
Verwendung von Echtzeit-Transferprotokoll (RTP) und Echtzeit-Streaming-Protokoll
(RTSP) zur Verfügung
stellen. Zu Erläuterungszwecken
werden zahlreiche spezifische Einzelheiten erwähnt, um ein gründliches
Verständnis
der vorliegenden Erfindung zu ermöglichen. Es werden beispielsweise
verschiedene Systemarchitekturen von Computernetzen und digitalen
Verarbeitungssystemen zu Veranschaulichungszwecken zur Verfügung gestellt,
die jedoch nicht als Einschränkungen
der vorliegenden Erfindung aufzufassen sind. Für den Fachmann ist jedoch offensichtlich,
dass die vorliegende Erfindung ohne diese spezifischen Einzelheiten
ausgeführt
werden kann. Bei anderen Beispielen werden allgemein bekannte Strukturen
und Vorrichtungen in Form eines Blockdiagramms gezeigt, um die Erläuterung
zu unterstützen.
-
1b ist
ein Diagramm eines Netzes von Computersystemen, in dem Mediadaten
verarbeitet werden können,
gemäß einer
Ausführungsform
der vorliegenden Erfindung. Gemäß der Darstellung
in 1b ist eine Anzahl von Client-Computersystemen,
von denen eines oder mehrere eine Implementierung eines Empfangssystems
darstellen können, über ein
Internet 122 miteinander gekoppelt. Es wird angemerkt,
dass sich der Ausdruck "Internet" auf ein Netz aus
Netzen bezieht. Solche Netze können
eine Vielfalt von Protokollen für
den Informationsaustausch wie etwa TCP/IP, ATM, SNA, SDI, RTP, RTSP usw.
verwenden. Die physischen Verbindungen des Internet und die Protokolle
und Kommunikationsprozeduren des Internet sind dem Fachmann wohlbekannt.
Zugang zum Internet 103 wird typischerweise von Internet-Serviceprovidern
(ISPs) zur Verfügung gestellt,
wie etwa dem ISP 124 und dem ISP 126, die auch
mit Cache-Proxyservern 130 und 132 verbunden sein
können.
User auf Client-Systemen wie etwa den Client-Computersystemen 102, 104, 118 und 120 erlangen
im allgemeinen Zugang zum Internet über Internet-Serviceprovider
wie etwa die ISPs 124 und 126, die auch über das
Internet mit Cache-Proxyservern 130 und 132 verbunden
sein können.
Der Zugang zum Internet kann den Transfer von Informationen (z.B.
e-Mail, Textdateien, Media-Dateien usw.) zwischen zwei oder mehr
digitalen Verarbeitungssystemen erleichtern, wie etwa den Client-Computersystemen 102, 104, 118 und 120 und/oder
einem Streaming-Media-Serversystem 128, das als Ursprungs-Server
angesehen werden kann, von dem Cache-Proxyserver Streaming-Media-Daten
empfangen.
-
Beispielsweise
können
eines oder mehr der Client-Computersysteme 102, 104, 118 und 120 und/oder
der Streaming-Media-Server 128 Mediadaten (z.B. Video und
Audio, oder Video, oder Audio) für eines
oder mehrere der Client-Computersysteme 102, 104, 118 und 120 und/oder
den Streaming-Media-Server 128 zur Verfügung stellen. Diese können als
Antwort auf eine Anforderung zur Verfügung gestellt werden. Gemäß der vorliegenden
Beschreibung können
solche Mediadaten in dem System 100 in Tracks transferiert
werden. Solche Tracks können bei
einer Ausführungsform
der Erfindung gemäß einem
spezifischen Format der Streaming-Media-Daten und/oder (einem) spezifischen
Datenkommunikations (z.B. Netz)-Protokoll(en) erzeugt werden.
-
Der
Streaming-Media-Server 128 besteht typischerweise aus mindestens
einem Computersystem fiür
den Betrieb mit einem oder mehr Datenkommunikationsprotokollen wie
etwa den Protokollen des World Wide Web, und ist insofern typischerweise
mit dem Internet 122 gekoppelt. Optional kann der Streaming-Media-Server 128 Teil
eines ISP sein, der einen Zugang zum Internet und/oder zu einem
anderen Netz für
Client-Computersysteme zur Verfügung
stellen kann. Die Client-Computersysteme 102, 104, 118 und 120 können jeweils
mit einer geeigneten Web-Browsing-Software auf Daten wie etwa auf HTML-Dokumente
(z.B. Webseiten) zugreifen, die von dem Streaming-Media-Server 128 zur
Verfügung gestellt
werden können.
Solche Daten können
Media wie etwa QuickTime Movies oder QuickTime Streaming-Me dia-Daten
zur Verfügung
stellen, die von den Client-Computersystemen 102, 104, 118 und 120 angeboten
werden können.
-
Der
ISP 124 stellt dem Client-Computersystem 102 eine
Internet-Anbindung über
eine Modemschnittstelle 106 zur Verfügung, die als Teil des Client-Computersystems 102 angesehen
werden kann. Das Client-Computersystem kann ein herkömmliches
Computersystem wie etwa ein Macintosh-Computer, ein "Netz"-Computer, ein tragbarer
Computer, ein Web-TV-System, oder andere Typen von digitalen Verarbeitungssystemen
(z.B. ein Mobiltelefon mit digitaler Verarbeitungsfähigkeit)
sein. Auf ähnliche Weise
stellt der ISP 126 eine Internet-Anbindung für die Client-Computersysteme 104, 118 und 120 zur Verfügung, obgleich
gemäß der Darstellung
in 1b eine solche Anbindung bei verschiedenen Client-Computersystemen
wie etwa den Client-Computersystemen 102, 104, 118 und 120 unterschiedlich
sein kann. Wie beispielsweise in 1b gezeigt ist,
ist das Client-Computersystem 104 mit dem ISP 126 über eine
Modemschnittstelle 108 gekoppelt, während die Client-Computersysteme 118 und 120 Teil
eines lokalen Netzes (LAN) sind. Die Schnittstellen 106 und 108,
die in 1b als Modems 106 bzw. 108 gezeigt
sind, können
ein Analogmodem, ein ISDN-Modem, ein Kabelmodem, eine Satellitenübertragungs-Schnittstelle
(z.B. "Direct PC"), eine drahtlose
Schnittstelle, oder eine andere Schnittstelle zum Ankoppeln eines
digitalen Verarbeitungssystems wie etwa eines Client-Computersystems
an ein anderes digitales Verarbeitungssystem sein. Die Client-Computersysteme 118 und 120 sind
mit einem LAN-Bus 112 über
die Netzschnittstellen 114 bzw. 116 gekoppelt.
Die Netzschnittstellen 114 und 116 können ein Ethernet-Typ,
Asynchronous Transfer Mode (ATM), oder ein anderer Typ von Netzschnittstelle
sein. Der LAN-Bus ist auch mit einem Gateway-Digitalverarbeitungssystem 110 gekoppelt,
das Firewall- und andere Internet-Dienste für ein LAN zur Verfügung stellen
kann.
-
Das
Gateway-Digitalverarbeitungssystem 110 wiederum ist mit
dem ISP 126 gekoppelt, um eine Internet-Anbindung für die Client-Computersysteme 118 und 120 zur
Verfügung
zu stellen. Das Gateway-Digitalverarbeitungssystem 110 kann
beispielsweise ein herkömmliches
Server Computersystem beinhalten. Auf ähnliche Weise kann der Streaming-Media-Server 128 beispielsweise
ein herkömmliches
Server-Computersystem
beinhalten.
-
Das
System 100 kann es einem oder mehreren der Client-Computersysteme 102, 104, 118 und 120 und/oder
dem Streaming-Media-Server 128 ermöglichen, Mediadaten (z.B. Video
und Audio, oder Video, oder Audio) für eines oder mehrere andere
der Client-Computersysteme 102, 104, 118 und 120 und/oder
den Streaming-Media-Server 128 zur Verfügung zu stellen.
-
Solche
Daten können
beispielsweise als Antwort auf eine Anforderung durch ein Empfangssystem
zur Verfügung
gestellt werden, bei dem es sich beispielsweise um eines oder mehrere
der Client-Computersysteme 102, 104, 118 und 120 handelt.
-
2 ist
ein Blockdiagramm eines beispielhaften digitalen Verarbeitungssystems,
das gemäß einer
Ausführungsform
der vorliegenden Erfindung verwendet werden kann. Beispielsweise
kann das in 2 gezeigte digitale Verarbeitungssystem 250 als ein
Client-Computersystem, ein Streaming-Media-Serversystem, ein herkömmliches
Serversystem, usw. verwendet werden. Weiterhin kann das digitale Verarbeitungssystem 250 dazu
verwendet werden, eine oder mehrere Funktionen eines Internet-Serviceproviders
wie etwa des ISP 124 oder 126 auszuführen. Das
digitale Verarbeitungssystem 250 kann über ein Modem oder eine Netzschnittstelle 268 mit externen
Systemen gekoppelt werden. Es ist anzumerken, dass das Modem bzw.
die Netzschnittstelle 268 als Teil des digitalen Verarbeitungssystems 250 angesehen
werden kann. Das Modem bzw. die Netzschnittstelle 168 kann
ein Analogmodem, ein ISDN-Modem, ein Kabelmodem, eine Tokenring-Schnittstelle,
eine Satellitenübertragungs-Schnittstelle,
eine drahtlose Schnittstelle, oder (eine) andere Schnittstelle(n)
sein, mit der eine Datenkommunikationsverbindung zwischen zwei oder mehr
digitalen Verarbeitungssystemen zur Verfügung gestellt wird.
-
Das
digitale Verarbeitungssystem 250 beinhaltet einen Prozessor 252,
der für
einen oder mehrere Prozessoren steht und einen oder mehr herkömmliche
Typen solcher Prozessoren wie einen Motorola PowerPC-Prozessor,
einen Intel Pentium (oder x86)-Prozessor
usw. beinhalten kann. Ein Speicher 255 ist durch einen
Bus 256 mit dem Prozessor 252 gekoppelt. Der Speicher 255 kann
ein dynamischer Direktzugriffsspeicher (DRAM) sein und/oder einen
statischen RAM (SRAM) beinhalten. Der Prozessor kann auch mit anderen
Typen von Speicherbereichen/Speichern (z.B. Cache, Flash-Speicher, Disk
usw.) gekoppelt sein, die als Teil des Speichers 255 oder
separat von dem Speicher 255 angenommen werden könnten.
-
Der
Bus 256 koppelt des Weiteren den Prozessor 252 mit
einem Anzeige-Controller 258, einem Massenspeicher 262,
dem Modem oder der Netzschnittstelle 268, und einem Eingangs-/Ausgangs (I/O)-Controller 264.
Der Massenspeicher 262 kann für einen magnetischen, optischen,
magneto-optischen, Band- und/oder anderen Typ von maschinenlesbarem
Medium/Informationsspeichervorrichtung stehen. Der Massenspeicher 262 kann
beispielsweise für
eine Festplatte, eine Nur-Lese- oder beschreibbare optische CD usw.
stehen. Der Anzeige-Controller 258 steuert auf herkömmliche
Weise eine Anzeige 260, die für eine Kathodenstrahköhren (CRT)-Anzeige,
eine Flüssigkristallanzeige
(LCD), eine Plasmaanzeige oder einen anderen Typ von Anzeigevorrichtung
stehen kann. Der I/O-Controller 264 steuert die I/O-Vorrichtung(en) 266,
die eine oder mehrere Tastaturen, Maus/Trackball oder andere Zeigevorrichtungen,
magnetische und/oder optische Plattenlaufwerke, Drucker, Scanner,
Digitalkameras, Mikrofone usw. beinhalten können.
-
Es
ist anzumerken, dass das digitale Verarbeitungssystem 250 nur
ein Beispiel für
ein System darstellt, das viele verschiedene Konfigurationen und Architekturen
besitzen kann und das mit der vorliegenden Erfindung eingesetzt
werden kann. Beispielsweise weisen Macintosh- und Intel-Systeme oftmals
mehrere Busse wie etwa einen peripheren Bus, einen dedizierten Cache-Bus
usw. auf. Andererseits kann es sein, dass ein Netzcomputer, der
als eine digitale Verarbeitungsvorrichtung der vorliegenden Erfindung
verwendbar ist, beispielsweise keine Festplatte oder andere Massenspeichervorrichtung aufweist,
aber Routinen und/oder Daten von einer Netzverbindung wie etwa dem
Modem bzw. der Schnittstelle 268 für die Verarbeitung durch den
Prozessor 252 empfangen kann. Auf ähnliche Weise kann ein Web-TV-System,
das im Stand der Technik bekannt ist, als ein digitales Verarbeitungssystem
der vorliegenden Erfindung angesehen werden, jedoch kann es sein,
dass ein solches System nicht eine oder mehrere I/O-Vorrichtungen
wie etwa die obenstehend unter Bezugnahme auf die I/O-Vorrichtung(en) 266 beschriebenen
aufweist. Des Weiteren kann ein tragbares Kommunikations- und Datenverarbeitungssystem,
das möglicherweise
ein Mobiltelefon und/oder eine Seitenwechselfähigkeit anwendet, als ein digitales
Verarbeitungssystem angesehen werden, das bei der vorliegenden Erfindung
verwendbar ist.
-
In
dem in 2 gezeigten System 250 kann der Massenspeicher 262 (und/oder
der Speicher 254) Media (z.B. Video, Audio, Filme usw.)
speichern, die gemäß der vorliegenden
Erfindung (z.B. mittels Tracks) verarbeitet werden können. Als
Alternative können
Mediadaten von dem digitalen Verarbeitungssystem 250 beispielsweise über das
Modem bzw. die Netzschnittstelle 268 empfangen und gespeichert
und/oder von der Anzeige 260 und/oder der (bzw. den) I/O-Vorrichtung(en) 266 präsentiert
werden. Bei einer Ausführungsform
können
Mediadaten in Paketform über
ein Datenkommunikationsnetz wie etwa ein LAN und/oder das Internet
gemäß Tracks übertragen
werden. Andererseits kann der Prozessor 252 eine oder mehrere
Routinen ausführen,
um eine Datei mit einem oder mehr Tracks zu verwenden, oder als
Alternative, um einen oder mehr Tracks erzeugen, um Media (z.B.
einen vorpaketierten Film, eine Audiodatei, Videodatei usw.) für eine Präsentation
oder Paketierung gemäß den Tracks
zu verarbeiten. Solche Routinen können in dem Massenspeicher 262,
dem Speicher 264, und/oder einem anderen maschinenlesbaren
Medium, auf das von dem digitalen Verarbeitungssystem 250 zugegriffen
werden kann, gespeichert sein. Bei einer Ausführungsform kann das digitale
Verarbeitungssystem 250 Mediadaten verarbeiten, in denen
Tracks eingebettet sind. Auf ähnliche
Weise können
solche eingebettete Mediadaten in dem Massenspeicher 262,
dem Speicher 264, und/oder einem anderen maschinenlesbaren Medium,
auf das von dem digitalen Verarbeitungssystem 250 zugegriffen
werden kann, gespeichert sein.
-
3 zeigt
ein Beispiel für
Komponenten, die in Datenübertragungs-Szenarios
vorkommen. Ein Ursprungs-Server 301 und ein Client 302 sind
gezeigt als Komponenten, die bei der Durchführung der Übertragung von Streaming-Media-Daten
unter Verwendung von RTP- und RTSP-Protokollen als eine Ausführungsform
der vorliegenden Erfindung vorkommen. Der Ursprungs-Server 301 und
der Client 302 können
direkt oder über
ein Zwischenglied wie einen Cache-Proxyserver miteinander kommunizieren.
Bei einer Ausführungsform
können
sich der Server 301 und der Client 302 auf separaten
lokalen Netzen (LANs) befinden. Bei einer anderen Ausführungsform
können
der Server 301 und der Client 302 über ein
weiträumiges
Netz (WAN) verbunden sein. Es können
ein oder mehrere Clients 302 vorhanden sein, die mit dem
Server 301 direkt oder indirekt über ein Zwischenglied wie etwa
das Internet in Kommunikation miteinander stehen. Der Server 301 und
der Client 302 können
zum Senden von verschiedenen Typen von Streaming-Media-Daten in
verschiedenen Formaten zusammenwirken.
-
Bei
einer Ausführungsform
können
die Streaming-Media-Daten in einer Abwärtsrichtung vom Server 301 an
den Client 302 gesendet werden. Bei einer anderen Ausführungsform
kann der Client 302 Anforderungen und andere Streaming-Media-Dateninformationen
an den Server 301 senden.
-
4 zeigt
ein Beispiel für
eine Ausführungsform
einer Kommunikationsbeziehung zwischen einem Client 302,
einem Cache-Proxyserver (CP) 401 und dem Ursprungs-Server 301.
Zwischen diesen Komponenten können
mehrere Arten von Verbindungen bestehen, jedoch kann der Client 302 bevorzugt über eine
Internetverbindung mit dem Cache-Proxyserver 401 in Kommunikation
stehen, und der Cache-Proxyserver 401 kann über eine
Internetverbindung mit dem Ursprungs-Server 301 in Kommunikation
stehen.
-
Ein
Cache-Proxyserver 401 kann über das Internet mit einem
einzelnen Client 302 oder mit mehreren Clients 302 verbunden
sein.
-
Der
Cache-Proxyserver 401 und seine angeschlossenen Clients 302 können sich
auf dem gleichen lokalen Netz befinden oder auch über ein
weiträumiges
Netz verbunden sein. Bei einer Ausführungsform ist es bevorzugt,
wenn der Cache-Proxyserver 401 und der Client 302 bzw.
die Clients 302 über
ein lokales Netz verbunden sind und sich nahe beieinander befinden.
Eine beispielhafte Ausführungsform
einer Nahverbindung kann eine Verbindung in einer gleichen Firma
o. dgl. sein, wobei die Verbindung eine Schnittstelle mit einer
Breitband-Schnittstelle anwenden kann. Die Kommunikationsverbindung
zwischen dem Cache-Proxyserver 401 und dem Client 302 kann
von vielfältiger
Art sein, wie etwa Direktkabel, Faseroptik, Hochfrequenz usw. Diese
Verbindungen sind veränderlich
und variieren je nach Anforderungen eines bestimmten Client 302 und
technologischen Fortschritten.
-
Ein
Ursprungs-Server 301 und ein Cache-Proxyserver 401 können unter
Verwendung einer Kommunikationsverbindung wie Direktkabel, Faseroptik,
Hochfrequenz oder dergleichen miteinander kommunizieren. Diese Verbindungen
sind veränderlich
und variieren je nach Anforderungen und technologischen Fortschritten.
Der Cache-Proxy 401 kann als Zwischenglied zwischen dem
Ursprungs-Server 301 und dem Client 302 für die Übertragung
von Streaming-Media-Daten und als Unterstützung bei einer reibungslosen
Lieferung von RTP-Paketen vom Server 301 zum Client 302 dienen.
Hierbei kann ein Cache-Proxyserver 401 mehrere seiner eigentlichen Funktionen
ausführen.
Bei einer Ausführungsform können die
Funktionen des Cache-Proxy 401 das Ausdünnen von Frames, das lokale
Speichern von Streaming-Media-Daten, und das zeitlich versetzte Übermitteln
von Streaming-Media-Daten an den Client 302 sein. Bei einer
anderen Ausführungsform können die
Funktionen des Cache-Proxy servers 401 das Verhandeln mit
dem Ursprungs-Server 301 für verschiedene RTP-Erweiterungen im
Zusammenhang mit verschiedenen Typen von Streaming-Media-Daten und das Empfangen
von oder Antworten auf verschiedene Anforderungen des Client 302 usw. sein.
Bei einer Ausführungsform
ist es eine der Aufgaben eines Cache-Proxyservers 401,
eine unverfälschte
und qualitativ gute Kopie von Streaming-Media-Daten effizient und schnell an
den Client 302 zu liefern.
-
Typischerweise
kann ein Client 302 eine Anforderung direkt an den Cache-Proxyserver 401 senden.
Der Cache-Proxyserver 401 kann dann auf die Anforderung
durch den Client 302 reagieren und entweder die angeforderten
Gegenstände
vom Systemserver holen, oder antwortet von sich aus. Seine eigene
Antwort kann aus einer Kopie von Streaming-Media-Daten bestehen,
die bereits von einem Ursprungs-Server erhalten wurde und auf einer
von dem Cache-Proxyserver gesteuerten Speichervorrichtung (z.B.
einer lokalen Festplatte des Cache-Proxyservers) gespeichert wurde.
Das System kann aber auch so konfiguriert sein, dass der Client 302 Anforderungen
direkt an den Systemserver 301 sendet, wobei dann der Server 301 direkt
dem Client 302 antwortet, oder indirekt an den Client 302 über einen
Cache-Proxyserver 401.
-
5 zeigt
ein beispielhaftes Verfahren gemäß einer
Ausführungsform
der vorliegenden Erfindung. In den Operationen von 5 kommunizieren ein
Ursprungs-Server (z.B. Server 301) und ein Cache-Proxyserver 401 miteinander,
um bei einer reibungslosen Übertragung
von Streaming-Media-Daten zu assistieren. Diese Kommunikation unterstützt eine
reibungslose Lieferung von Paketen auf viele Weisen; u.a. ermöglicht sie
es dem Cache-Proxyserver 401, qualitativ gute Streaming-Media-Daten
mit einer hohen Geschwindigkeit an den Client 302 zu liefern.
Zusätzlich
hilft die Kommunikation auch beim Assistieren und Bewältigen der
Belastung des Client, indem sie sicherstellt, dass der Client 302 eine
zumutbare Menge von Streaming-Media-Daten
erhält und
keine Frames dabei fallengelassen werden, oder nur Frames einer
geringeren Wichtigkeit dabei fallengelassen werden (durch Ausdünnen von
Frames).
-
Zunächst fordert
der Cache-Proxyserver bei der Operation 501 Streaming-Media-Daten von einem Ursprungs-Server
an. Das Anfordern kann durchgeführt
werden, indem er beim Server 301 nach "setup" in RTSP für Audio- oder Video-Streaming-Media-Daten anfragt.
Die Anforderung kann einen Typ von Streaming-Media-Daten oder mehrere Typen
von Streaming-Media betreffen. Die Anforderung kann sich auf ähnliche
oder bezugslose Typen von Streaming-Media-Daten beziehen.
-
Der
Server 301 empfängt
die Anforderung vom Cache-Proxyserver 401, und der Server 301 arbeitet
auf die im Hinblick auf die Operation 502 von 5 beschriebene
Weise. Die "SETUP"-Anforderung in RTSP
in Operation 501 kann durch den Cache-Proxyserver 401 initiiert werden,
unabhängig von
einem Client-System 302, das Streaming-Media-Daten anfordert,
oder die Anforderung in Operation 501 kann durch ein Client-System 302 initiiert werden,
das die Streaming-Media-Daten vom Cache-Proxyserver 401 anfordert,
der die angeforderten Streaming-Media-Daten wiederum vom Server 301 anfordert
(falls der Cache-Proxyserver 401 die angeforderten Streaming-Media-Daten
nicht schon unter seiner Steuerung gespeichert hat, wie eine lokale
Festplatte des Cache-Proxyserver 401). Der Cache-Proxyserver 401 kann
auch die IP-Adresse des Client für
eine spätere
Kommunikation loggen, falls ein Client die Anforderung initiiert
hat.
-
Der
Cache-Proxyserver 401 und der Ursprungs-Server 301 können einen
Kommunikationsvorgang ausbauen, bei dem der Cache-Proxyserver 401 und
der Ursprungs-Server 301 in
einen Verhandlungsvorgang 502 für eine Kommunikation in beide Richtungen
eintreten können,
um eine reibungslose Übertragung
von Streaming-Media-Datenpaketen zu unterstützen. Wie in Operation 501 gezeigt
ist, kann der Cache-Proxyserver 401 mit
dem Ursprungs-Server 301 kommunizieren und (z.B. durch
Spezifizieren der Namen von RTP-Erweiterungen) einen den Streaming-Media-Daten
zugeordneten Satz von RTP-Erweiterungen mitteilen, der an den Cache-Proxyserver 401 gesendet
werden soll. Der für
den Server 301 angeforderte Satz von Erweiterungen kann
der gleiche sein wie der Satz von Anforderungen, der vom Client 302 an
den Cache-Proxyserver 401 gesendet wurde (in Fällen, in
denen der Client RTP-Erweiterungen wie etwa Sicherheitserweiterungen
für seine Verwendung
spezifiziert).
-
Der
Server 301 empfängt
die Anforderung von RTP-Erweiterungen vom Cache-Proxyserver 401.
Der Server 301 kann dann seine internen Prozesse abarbeiten,
um zu bestimmen, ob der Server 301 die angeforderten RTP-Erweiterungen
unterstützt.
Das Ergebnis dieser Bestimmung kann sein, dass der Server 301 einige,
aber nicht alle der angeforderten RTP-Erweiterungen unterstützt, oder
dass der Server 301 keine der angeforderten RTP-Erweiterungen
unterstützt,
oder dass der Server 301 alle angefor derten RTP-Erweiterungen
unterstützt.
Der Server 301 kann dem Cache-Proxyserver 401 in Operation 502 antworten,
indem er den Cache-Proxyserver 401 über die unterstützten RTP-Erweiterungen
des Servers 301 informiert. Der Server 301 kann die
Wahl treffen, zu antworten 502, indem er nur die unterstützten RTP-Erweiterungen
anzeigt, oder kann antworten, indem er sowohl die unterstützten als auch
die nichtunterstützten
RTP-Erweiterungen anzeigt, oder der Server 301 kann auch
gar nicht antworten, wodurch er keine Unterstützung für angeforderte Erweiterungen
anzeigt. Bei einer Ausführungsform
kann die Antwort die Form eines Echos oder sonstige andere Formen
haben. Bei einer Echoform der Erfindung überträgt der Server die Namen der
angeforderten RTP-Erweiterungen und einen zugeordneten Code für jede benannte
Erweiterung.
-
Der
Cache-Proxyserver 401 empfängt vom Server 301 eine
Antwort, welche die unterstützten RTP-Erweiterungen
oder sowohl die unterstützten als
auch die nicht-unterstützten
RTP-Erweiterungen angibt. Der Cache-Proxyserver 401 kann überprüfen, ob
eine Antwort für
alle vorausgehend von ihm angeforderten RTP-Erweiterungen gesendet
wurde. Der Cache-Proxyserver 401 kann keine, eine, einige, oder
alle Antworten auf die angeforderten RTP-Erweiterungen empfangen
haben. Der Cache-Proxyserver 401 kann weiterhin bewerten,
um zu überprüfen, ob
irgendwelche von dem Server 301 nicht unterstützten RTP-Erweiterungen
für einen
Streaming-Media-Daten-Übertragungsvorgang
erforderlich sind. Erforderliche RTP-Erweiterungen können definiert
sein als RTP-Erweiterungen, die erforderlich sind, um eine bestimmte
Datenübertragungsoperation
wie etwa das Ausdünnen
von Frames usw. am Cache-Proxyserver 401 weiterzuführen. Gemäß der Darstellung
in 5 beziehen sich die Operationen 501 und 502 auf
Setup und Verhandlung bezüglich eines
Audio-Tracks, während
sich die Operationen 503 und 504 auf einen ähnlichen
Setup und eine Verhandlung für
einen Video-/Bild-Track beziehen.
-
Bei
einer Ausführungsform
kann der Cache-Proxyserver 401 jeweils mehrere Sätze von RTP-Erweiterungen
vom Server 301 anfordern. Falls die angeforderten RTP-Erweiterungen erforderlich sind
und vom Server 301 nicht unterstützt werden, kann der Cache-Proxyserver 401 die
Entscheidung treffen, den Verhandlungsvorgang zu beenden. Es kann
auch ein Fall vorliegen, dass einige der Erweiterungen unterstützt werden
und einige nicht. Wenn in einer solchen Situation die nicht-unterstützten Erweiterungen
für den
Datenübertragungsvorgang nicht
erforderlich sind, kann der Cache-Proxyserver 401 die Entscheidung
treffen, fortzufahren und die unterstützten Erweiterungen und die
zugeordneten Streaming-Media-Daten zu empfangen. Bei einer anderen
Ausführungsform
kann es sein, dass der Cache-Proxy 402 für keine
der angeforderten RTP-Erweiterungen eine Antwort erhält. In einem
solchen Fall kann der Cache-Proxy 402 die Entscheidung treffen,
den Verhandlungsvorgang mit dem Server 301 zu beenden.
-
Falls
der Cache-Proxyserver 402 die Entscheidung trifft, den
Verhandlungsvorgang nicht zu beenden und die unterstützten RTP-Erweiterungen und
Streaming-Media-Daten
anzufordern, kann er eine Anforderung an den Server 301 schicken,
die Streaming-Media-Daten und die zugeordneten unterstützten RTP-Erweiterungen
in Operation 504 zu senden. In dem Beispiel von 5 findet
diese Anforderung der Streaming-Media-Daten und der zugeordneten
RTP-Erweiterungen statt, wenn der Cache-Proxyserver 401 einen "PLAY"-Befehl im RTSP-Protokoll
sendet.
-
Der
Server 301 antwortet in Operation 505 auf den "PLAY"-Befehl, indem er
die Streaming-Media-Daten sendet und die angeforderten und unterstützten RTP-Erweiterungen,
die dem Streaming-Media-Daten zugeordnet sind, in einem erweiterten
Vorspannformat an den Cache-Proxyserver 401 sendet. Dieser
Vorspann kann eine, zwei oder drei ähnliche oder bezugslose RTP-Erweiterungen enthalten.
-
Bei
Empfang der Streaming-Media-Daten und Empfang von RTP-Erweiterungen
vom Server 301 kann der Cache-Proxy 401 die Streaming-Media-Daten
und die RTP-Erweiterungen in einer Speichereinrichtung 601 (z.B.
einer vom Cache-Proxyserver 401 gesteuerten Speichervorrichtung
wie etwa einer lokalen Festplatte des Servers 401) speichern und
den Übertragungsvorgang
mit dem Server 301 beenden. Der Cache-Proxy 401 kann
auch den Verhandlungsvorgang neu initiieren und immer wieder wiederholen,
wenn eine andere Anforderung von Streaming-Media von dem Client 302 eingeht.
Diese Anforderung kann vorausgegangenen Anforderungen ähnlich oder
völlig
verschieden davon sein. Einige der Erweiterungen, die von dem Cache-Proxyserver 401 angefordert
werden können,
können
eine durch das Symbol "trti" bezeichnete Übertragungszeit-Untererweiterung,
oder eine durch das Symbol "ftry" bezeichnete Frame-Typ-Untererweiterung,
oder eine durch das Symbol "papo" bezeichnete Paketposition-Untererweiterung
sein. Es können
auch andere Erweiterungen angefordert werden (z.B. eine Erweiterung,
die von dem Client 302 oder dem Server 401 verwendet
wird, um eine sichere oder verschlüsselte oder verifizierte Kommunikation
zwischen dem Client 302 und dem Server 401 aufrecht
zu erhalten).
-
Beispielsweise
kann ein Cache-Proxyserver 401 in einem Zyklus seines Betriebs
nach drei separaten RTP-Untererweiterungen fragen, von denen eine
eine durch das Symbol "frty" bezeichnete Frame-Typ-Untererweiterung
sein kann (die zum Ausdünnen
von Frames durch den Cache-Proxyserver 401 gemäß der nachfolgenden
Beschreibung verwendet wird), die nächste kann die durch "trti" bezeichnete Übertragungstyp-Untererweiterung
sein (die vom Cache-Proxyserver 401 gemäß der nachfolgenden Beschreibung
verwendet wird), und die letzte kann die durch "papo" bezeichnete
Paketposition-Untererweiterung sein (die zum Wiedergewinnen von
verloren gegangenen oder fehlenden Paketen verwendet werden kann).
Zur Veranschaulichung dieses Beispiels sei auch angenommen, dass
die Untererweiterung "frty" für den Streaming-Media-Datenübertragungsvorgang
erforderlich ist. "Frty" kann aus verschiedenen
Gründen
als eine erforderliche Untererweiterung bezeichnet werden. Einer
der Gründe kann
sein, dass der Client 302 die Daten nicht mit einer hohen
Datenrate empfangen oder verarbeiten kann (weshalb ein Ausdünnen von
Frames erforderlich ist), und die Untererweiterung "frty" unterstützt den
Datenübertragungsvorgang
zwischen einem Cache-Proxyserver und dem Client 302, indem
sie es ermöglicht,
dass der Cache-Proxyserver ein Ausdünnen von Frames durchführt, und
kann daher "erforderlich" sein.
-
Der
Cache-Proxy 402 kann die Anforderung empfangen und mit
dem Server 301 kommunizieren, indem er eine einzige Anforderung
an den Server 301 sendet, die nach beiden Untererweiterungen
fragt. Zur Veranschaulichung dieses Beispiels sei angenommen, dass
der Server 301 nur eine der zwei RTP-Erweiterungen unterstützen kann.
Der Server 301 kann dann eine Antwort, die anzeigt, welche
Untererweiterung unterstützt
wird, an den Cache-Proxyserver zurücksenden.
-
Falls
es sich bei der unterstützten
Untererweiterung nur um "trti" oder "papo" oder beide davon, aber
nicht um "frty" handelt, beendet
der Cache-Proxy 402 den Verhandlungsvorgang zwischen dem
Cache-Proxy 402 und dem Server 301. Der Grund
dafür ist,
dass "frty" eine für den Datenübertragungsvorgang
erforderliche Erweiterung war, und da sie vom Server 301 nicht
unterstützt
wird, kann der Cache-Proxy 402 nicht fortfahren. Falls
hingegen die unterstützte
Untererweiterung nur "frty", oder frty und papo,
oder frty und trti, oder frty, papo und trti sein sollte, kann der
Cache-Proxyserver 401 den Übertragungsvorgang weiter fortfahren.
Der Cache-Proxyserver 401 kann hierbei die Wahl treffen,
den Vorgang nicht zu beenden, da die erforderliche Untererweiterung
frty in der Antwort als vom Server 301 unterstützt vorhanden
ist.
-
6 zeigt
ein Beispiel für
ein Verfahren zum Übertragen
von Paketübertragungszeit-Daten, das
mit verschiedenen Ausführungsformen
der vorliegenden Erfindung verwendet werden kann. Der Server 301 ist
mit dem Cache-Proxyserver 401 über eine standardmäßige Kommunikationsvorrichtung wie
etwa eine Faseroptik-Drahtverbindung, Hochfrequenzkommunikation,
Kabeldraht o. dgl. verbunden. Für
den Durchschnittsfachmann dürfte
verständlich sein,
dass die Art der Kommunikationsvorrichtung für die Datentransferoperation
gemäß der vorliegenden Erfindung
nicht wesentlich ist, und dass diese Kommunikationsvorrichtungen
austauschbar sind. Es sollte klar sein, dass es bei den Kommunikationsvorrichtungen
darauf ankommt, dass sie eine Kommunikation in beide Richtungen,
d.h. vom Server 301 zum Cache-Proxy 402 oder vom
Cache-Proxy 402 zum Server 301, ermöglichen.
-
Die
Kommunikation zwischen einem Cache-Proxyserver 401 und
dem Ursprungs-Server 301 kann
eine Direktkommunikationsbeziehung sein, oder es können auch
andere Vorrichtungen wie etwa Router im Internet vorhanden sein,
die als Zwischenglieder fungieren, um einen Streaming-Media-Datentransfer
zu unterstützen.
Typischerweise befindet sich ein Cache-Proxyserver 401 näher beim
Client 302 als der Ursprungs-Server 301. Diese
große
Nähe kann
innerhalb einer Firma oder auf einem gegebenen lokalen Netz (LAN)
oder in einem gleichen geografischen Gebiet vorhanden sein, während der
Cache-Proxyserver und der ursprüngliche
Systemserver 301 weiter voneinander entfernt sind.
-
Der
Cache-Proxyserver 401 kann eine Speichereinrichtung 601 zum
Speichern der Streaming-Media-Daten 603 und/oder der zugeordneten RTP-Erweiterungen 602 aufweisen.
Die Speichereinrichtung 601 kann sich lokal beim Cache-Proxyserver 401 oder
vom Cache-Proxyserver 401 entfernt befinden, jedoch wird
die Speicherung auf alle Fälle
durch den Cache-Proxyserver 401 gesteuert. Der Cache-Proxyserver 401 kann
eine Verbindung aufgebaut haben, um vom Server 301 empfangene
Daten für
eine Zeitdauer in der Speichereinrichtung 601 zu speichern,
und dann in der Lage zu sein, die gespeicherten Daten zu einem späteren Zeitpunkt
abzurufen, um sie an den Client 302 zu senden. In dem Beispiel
von 6 werden die Streaming-Media-Daten 603 und
ihre zugeordnete RTP-Erweiterung (in diesem Fall die Ubertragungszeit)
zusammen auf einer Speichervorrichtung 601 gespeichert.
Gruppen von Streaming- Media-Daten
(z.B. ein Paket oder ein Satz von Paketen) werden einer entsprechenden
Bezeichnung einer Übertragungszeit
zugeordnet, so dass jede Gruppe eine Übertragungszeit aufweist, die
angibt, wann die jeweilige Gruppe übertragen werden soll. Es ist
anzumerken, dass die Streaming-Media-Daten und die zugeordneten
RTP-Erweiterungen separat gespeichert sein können (aber einander zugeordnet
bleiben -- z.B. Paket Nr. xxx zu übertragen zum Zeitpunkt ABC,
Paket Nr. xxy zu übertragen
zum Zeitpunkt ABD, usw.).
-
In
dem Beispiel von 6 werden die Streaming-Media-Daten
vom Server 401 empfangen, und der Cache-Proxyserver 401 empfängt die Übertragungszeitdaten
vom Server 301 und speichert sie in der Speichereinrichtung 601.
Die Übertragungszeitdaten
können
jedem Track von Streaming-Media-Daten zugeordnet sein. Beispielsweise
kann in einem Fall die Übertragungszeit
von 0 sec 602 entsprechenden Streaming-Media-Daten 603 zugeordnet
sein. Im Betrieb werden die Streaming-Media-Daten 0 in dieser beispielhaften Ausführungsform
zur Übertragungszeit
0 an einen Client gesendet.
-
7 zeigt
ein beispielhaftes Verfahren zum Verwenden der Übertragungszeit als RTP-Erweiterung
gemäß einer
Ausführungsform
der vorliegenden Erfindung. Im Betrieb kann das in 7 vorgeschlagene
Verfahren die Systemarchitektur gemäß dem Vorschlag in einer der
in 6 gezeigten Ausführungsformen der vorliegenden
Erfindung verwenden.
-
In
einem Beispiel für
das Verfahren von 7 empfängt ein Cache-Proxyserver 401 eine
Anforderung von Streamng-Media-Daten vom Client 302 und
fordert daraufhin eine RTP-Erweiterung an, welche die Übertragungszeitinformationen
angibt, und fordert den Server 301 auf, die Übertragungszeit-Untererweiterung
RTP-Daten 701 und die zugeordneten Streaming-Media-Daten
zu senden. Die Operation 701 zeigt die Anforderung von
Streaming-Media-Daten und der Übertragungszeit
durch den Cache-Proxyserver, die aus dieser Anforderung resultiert.
Der Server empfängt
die Anforderung in der Operation 702 gemäß der Darstellung
in 7. Es kann auch ein Fall vorliegen, in dem ein
Cache-Proxyserver 401 die angeforderten Streaming-Media-Daten
und die ihnen zugeordneten Übertragungszeitinformationen
vom Server 301 bereits erhalten hat und die Streaming-Media-Daten und
die zugeordneten RTP-Erweiterungen
in einer Speichereinrichtung 601 gespeichert hat. Dann
kann der Cache-Proxyserver 401 damit beginnen, auf die Anforderung
des Client 302 zu ant worten, ohne mit dem Ursprungs-Server 301 zu
kommunizieren, und somit die Operationen 707 und 708 von 7 wegzulassen.
-
Nimmt
man zur Veranschaulichung dieses Beispiels an, dass der Ursprungs-Server 301 die Übertragungszeitinformationen
unterstützt,
so antwortet der Server 301 dem Cache-Proxyserver, indem
er seine Unterstützung
für die
angeforderte Untererweiterung in der Operation 703 angibt.
Falls die Übertragungszeit
Untererweiterung jedoch vom Ursprungs-Server 301 nicht
unterstützt
wird, kann der Ursprungs-Server 301 dem Cache-Proxyserver 401 antworten
oder auch nicht antworten, um seine Unterstützung für die angeforderte Untererweiterung anzuzeigen,
wie in der Operation 709 gezeigt ist. Im Falle einer nicht-unterstützten Untererweiterung kann
der Cache-Proxy 402 den
Verhandlungsvorgang mit dem Server 301 beenden, wie in
der Operation 710 gezeigt ist, und würde typischerweise den Client 302 darüber informieren,
dass er nicht in der Lage ist, die Streaming-Media-Daten zur Verfügung zu
stellen. Hierbei kann der Cache-Proxyserver 401 zuerst
bewerten, ob die fehlenden Übertragungszeitinformationen
für das
Abarbeiten seiner Prozesse erforderlich sind. Falls die Bestimmung
ergibt, dass die Übertragungszeitinformationen
in diesem besonderen Fall ein erforderliches Element sind, kann
der Cache-Proxyserver entscheiden, ob der Übertragungsvorgang weitergeführt oder
beendet werden soll.
-
Der
Server 301 sendet in der Operation 704 die Übertragungszeit-RTP-Daten
in einem erweiterten Vorspannformat gemäß dem RTP-Protokoll an den
Cache-Proxyserver. Der Vorspann kann aus den normalen Vorspannfeldern,
dem Untererweiterungszeichennamen und einer Untererweiterung ID 704 bestehen.
Der Untererweiterungszeichenname für Übertragungszeitdaten kann ein
mit "trti" bezeichneter 4-Zeichen-Code
sein. Dieser Code kann den Inhalt der Untererweiterung eindeutig
als Transitzeit-Daten identifizieren und beschreiben. Die Untererweiterungs-ID
kann die Untererweiterung in dem RTP-Paket identifizieren.
-
Eine Übertragungszeit-Untererweiterung kann
aus einer einzelnen unsignierten, 64Bit-Ganzzahl bestehen, welche
die empfohlene Übertragungszeit
des RTP-Pakets in Millisekunden angibt, wie in der Operation 704 gezeigt
ist. Die Übertragungszeit
kann vom Beginn einer Media-Präsentation
abgesetzt sein. Beispielsweise kann in einem Unterzyklus des Betriebs
ein Sitzungsbeschreibungs-Protokolldokument für einen URL ("Uniform Resource
Locator") einen
Bereich von 0–729,45
Sekunden beinhalten. Der Client 302 kann eine PLAY-Anforderung 706 nach
den Daten vom Typ Video, Audio, Text, Grafik, und Bilder usw. machen.
-
Der
Cache-Proxyserver 401 kann das den Streaming-Media-Daten
zugeordnete RTP-Datenpaket
mit der Übertragungszeit-Untererweiterung
empfangen, wie in 6 in mehr Detail gezeigt ist.
Der Cache-Proxyserver 401 kann dann die RTP Übertragungszeitdaten
lokal speichern, wie in 6 gezeigt ist. Der Cache-Proxyserver 401 kann
dann die Vorspann-ID in der Operation 705 herausnehmen
und die zugeordneten Streaming-Media-Daten in der Operation 707 mit
einer voneinander abgesetzten Übertragungszeit
individuell an den Client 302 senden, was es dem Client 302 ermöglicht,
die PLAY-Operation 708 weiterzuführen. Die Kenntnis und das
zeitversetzte lokale Speichern der Transitzeit am Cache-Proxyserver
hat den einen Vorteil, dass es dem Cache-Proxyserver 401 jetzt
möglich sein
kann, Daten selektiv in verschiedenen Zeiträumen erneut an den Client 302 zu übertragen
oder auf eine Anforderung des Client zu reagieren, Daten in Entsprechung
mit einem beliebigen Zeitschlitz zu senden.
-
8 zeigt
ein beispielhaftes Verfahren für einen
Stromausdünnungsvorgang
durch einen Cache-Proxyserver gemäß einer Ausführungsform
der vorliegenden Erfindung. Im Betrieb kommunizieren ein Client 302 und
ein Cache-Proxyserver 301 miteinander, um das Senden und
Empfangen von Streaming-Media-Daten zu unterstützen und die Verkehrsflußsteuerung
am Client 302 zu unterstützen. Bei einem Verfahren gemäß 8 kommuniziert
ein Client 302 mit dem Cache-Proxyserver 401 und
zeigt an, dass er überlastet
ist, oder der Cache-Proxyserver 401 erfasst, dass der Client überlastet
ist. Als Teil dieser Kommunikation stellt der Cache-Proxyserver 401 sicher,
dass der Client 302 keine Datenmenge erhält, die
seine Datenbehandlungskapazität übersteigt.
Der Cache-Proxyserver verhindert des Weiteren, dass infolge eines überlasteten
Client 302 zumindest ausgewählte Frames "fallengelassen" werden oder fehlen.
-
Ein 8 zugrunde
liegendes Prinzip ist es, dass ein überlasteter Client 302 den
Cache-Proxyserver davon in Kenntnis setzen kann, dass er seine Kapazitätsgrenze
zum Empfangen von RTP-Daten (z.B. Streaming-Media-Daten) erreicht
hat. Der Client 302 kann aus mehreren Gründen überlastet
worden sein, wie etwa, dass ein Cache-Proxyserver RTP-Daten sehr schnell sendet
und der Client 302 Schwierigkeiten hat, Daten mit einer
solchen Geschwindigkeit zu empfangen. Der Client 302 kann
den Cache-Proxyserver informieren, das Senden von Streaming-Media-Daten
insgesamt abzubrechen, oder die Daten mit einer geringeren Geschwindigkeit
zu senden. Der Client 302 kann den Cache-Proxyserver auch
informieren, nur eine ausgewählte
Ordnung von Frames und keine Frames einer niedrigeren Ordnung zu
senden. Der Cache-Proxyserver 401 verwendet die Frame-Typ-Daten
um zu bestimmen, welche Frames an den Client 302 übertragen
werden sollen; typischerweise werden Frames einer höheren Priorität übertragen,
während
Frames mit einer niedrigeren Priorität nicht übertragen werden.
-
Ein
Verfahren von 8 beginnt mit der Operation 801,
bei der ein Cache-Proxyserver 402 mit dem Ursprungs-Server 301 kommunizieren
und von dem Server 301 Streaming-Media-Daten und deren
zugeordnete Frame-Typ Informationen anfordern kann. Der Frame-Typ
identifiziert verschiedene Typen von Daten (z.B. Frames) in Streaming-Media-Daten
und ermöglicht
ein "Ausdünnen", das definiert sein
kann als ein Reduzieren von Frames, ein Senden von Frames mit einer
geringeren Geschwindigkeit, oder überhaupt kein Senden von bestimmten Frames.
Es ist anzumerken, dass Ausdünnen
auf verschiedene Datentypen anwendbar ist, und dass "Frames" als solche verschiedene
Datentypen angenommen werden können.
Der Server 301 kann die Anforderung in der Operation 802 empfangen
und in der Operation 803 dem Cache-Proxyserver 401 antworten,
indem er anzeigt, ob der Server 301 die Streaming-Media-Daten von dem
angeforderten Frame-Typ unterstützt.
Falls der Server 301 diese unterstützt, beinhaltet die Antwort
des Server 301 in der Operation 803 das Senden
der zugeordneten RTP-Frame-Typ-Untererweiterung in einem Format, das
in Block 804 beschrieben ist, zusammen mit einem Kennungscode,
welcher der in der Operation 801 namentlich angeforderten
Frame-Typ-Erweiterung entspricht.
-
Falls
der Server 301 die Frame-Typ-Untererweiterung nicht unterstützt, kann
der Cache-Proxyserver in der Operation 807 und 808 die
Kommunikation mit dem Server 301 beenden. Der Server 301 kann
anzeigen, dass er die angeforderten Frame-Typ Streaming-Media-Daten nicht unterstützt, indem
er entweder antwortet oder überhaupt
keine Antwort an den Caching Proxy Server 401 sendet, was
ebenfalls die Abwesenheit von Unterstützung für die angeforderte RTP-Erweiterung
für die
Streaming-Media-Daten anzeigen würde.
Falls der Server 301 jedoch die Frame-Typ-Untererweiterung
unterstützt,
kann der Cache-Proxy 402 den Server 301 informieren,
die den Frame-Typ-Informationen zugeordneten Streaming-Media zu
senden. Bei einer Ausführungsform kann
der Server 301 die unterstützten Streaming-Media-Da ten-Untererweiterungen
ohne jegliche weitere Anforderungen vom Cache-Proxyserver 401 senden. Bei
einer anderen Ausführungsform
kann der Server 301 auf eine weitere Anforderung vom Cache-Proxyserver 401 warten,
die unterstützten
Streaming-Media-Daten Untererweiterungen zu senden.
-
Der
Server 301 kann daraufhin die RTP-Untererweiterung in einem
erweiterten Vorspannformat senden. Die Frame-Typ-Untererweiterung
kann aus einem einzelnen unsignierten 16Bit-Ganzzahlwert mit einigen
wohlbekannten Werten bestehen, welche für verschiedene Frame-Typen
stehen. Die wohlbekannten Werte können "1" sein
für einen
Schlüssel-Frame, "2" für
einen p-Frame, oder "3" für einen b-Frame,
wobei der Schlüssel-Frame
von der höchsten
Ordnung und am wichtigsten, der b-Frame von der niedrigsten Ordnung und
am wenigsten wichtig, und der b-Frame in seiner Wichtigkeit zwischen Schlüssel-Frame
und b-Frame angesiedelt sein kann. Es kann auch weitere Frames geben,
die zu diesem Format hinzugefügt
werden können.
-
Der
Cache-Proxyserver 401 kann daraufhin die Streaming-Media-Daten
und ihre zugeordnete Frame-Typ-Untererweiterung nach deren Empfang vom
Ursprungs-Server 301 in seiner Speichervorrichtung 601 speichern.
Dies ist in der Operation 805 von 8 gezeigt.
Der Cache-Proxyserver 401 kann dann in einen Verhandlungsvorgang
mit dem Client 302 eintreten, in dem er die Fähigkeit
des Client zum Behandeln von Streaming-Media-Datenverkehr 809 zu
diesem Zeitpunkt bewertet. Auf der Grundlage des Ergebnisses des
Verhandlungsvorgangs 809 kann der Cache-Proxyserver 401 Frames
ausdünnen
(und nur ausgewählte,
vorhergehend bestimmte Frames senden) und ausgewählten Frames 806 zugeordnete Streaming-Media-Daten
an den Client 302 senden.
-
Beispielsweise
kann in einem Betriebszyklus ein Client 302 den Cache-Proxyserver
informieren, dass er überlastet
ist. Der Client 302 kann den Cache-Proxyserver 401 informieren,
das Senden von Frames insgesamt abzubrechen, oder die Bitrate zu verringern,
falls die Übertragung
nachhinkt. Beim Verringern der Bitrate und Verlangsamen kann der Cache-Proxyserver 401 das
Senden von Frames der niedrigsten Ordnung der Streaming-Media-Daten, der
b-Frames, an den Client 302 abbrechen. Der Cache-Proxyserver 401 und
der Client 302 können
weiter kommunizieren, um zu bewerten, ob der Client 302 immer
noch überlastet
ist. Bei einer Ausführungsform
kann der Cache-Proxyserver, wenn der Client 302 nach dem
Ausdünnen
der b-Frames in der Lage ist, die Last zu bewältigen, dem Client 302 Schlüssel-Frames
und p- Frames senden.
Falls der Client 302 jedoch immer noch überlastet ist, kann der Cache-Proxyserver 401 den
Datenverkehr zum Client 302 weiter reduzieren und das Senden
von p-Frames abbrechen. Der Cache-Proxyserver 401 kann weiterhin
die Datenbehandlungsfähigkeit
des Client 302 bewerten und bestimmen, ob ein weiteres
Ausdünnen
von Frames nötig
ist, um die Belastung des Client 302 zu verringern. Bei
einer anderen Ausführungsform
kann der Client 302 dem Cache-Proxyserver 401 unmittelbar
angeben, welche Frames er senden und welche Frames er nicht senden
soll, bis eine darauf folgende Anforderung an den Cache-Proxyserver 401 gesendet
wird, die Sendebedingungen zu ändern.
-
Nachdem
ein Client 302 seine Fähigkeit
zum Cache-Speichern von Frames wieder erlangt hat, kann der Cache-Proxyserver 401 wieder
damit beginnen, Frames der niedrigen Ordnung an den Client 302 zu
senden. Er kann wieder alle Frames mit einer hohen Geschwindigkeit
senden oder die Frames gemäß Anforderungen
vom Client 302 senden. Falls der Client 302 wieder überlastet
wird, kann der Cache-Proxyserver 401 den Ausdünnungsvorgang
wiederholen, bis der Client 302 wieder zum Cache-Speichern
von Daten in der Lage ist. 10 zeigt
ein Beispiel dafür,
wie ein Cache-Proxyserver 401 Streaming-Media-Daten und
deren zugeordnete Frame-Typ (FT)-RTP-Erweiterungsdaten von einem
Ursprungs-Server 301 empfängt und die Streaming-Media-Daten
und zugeordneten Frame-Typ Erweiterungsdaten auf einer Speichervorrichtung
(z.B. einer lokalen Festplatte des Cache-Proxyservers 401)
speichert und dann die Frame-Typ Daten verwendet, um selektiv Frames
der Streaming-Media-Daten,
die an einen Client 302 übertragen werden, auszudünnen.
-
Die
Kommunikation zwischen einem Cache-Proxyserver 401 und
einem Ursprungs-Server 301 oder
zwischen einem Cache-Proxyserver 401 und einem Client 302 wird
unter Verwendung von Echtzeit Transferprotokoll (RTP) und Echtzeit-Streaming-Protokoll (RTSP)
zum Senden/Empfangen von Streaming-Media-Daten vorgenommen. Ein
Ursprungs-Server 301 sendet Streaming-Media-Datenpakete
in einem Streaming-Media-Format unter Verwendung von RTP immer dann
an einen Cache-Proxyserver 401,
wenn eine Übertragung
von Streaming-Media-Daten stattfindet. Eine der Ausführungsformen
der vorliegenden Erfindung ist es, die momentan vorhandenen RTP-Vorspanne
modifizieren zu können,
indem es möglich
ist, den Vorspann mit Untererweiterungen zu erweitern, und auch
das Vorspannformat variabel machen zu können. Eine Erweiterung des
Vorspanns ist nützlich,
weil ein Cache-Proxyserver 401 zusammen
mit einem RTP-Paket mehrere Informationen benötigen kann, die ihm dabei helfen,
dem Client 302 ein qualitativ gutes Streaming-Media-Datenpaket und eine
reibungslose Lieferung zur Verfügung
zu stellen. Die möglicherweise benötigten zusätzlichen
Informationen können
zur Verfügung
gestellt werden, indem sie an den bereits vorhandenen Vorspann angehängt werden,
da es möglich
ist, das Vorspannfeld zu erweitern. Es sollte auch klar sein, dass
die Möglichkeit
des Variierens des erweiterten Vorspanns deshalb wichtig ist, weil die
zusätzlichen
Informationen, die vom Cache-Proxy 402 benötigt werden,
jedes Mal verschieden sein können.
Um diese Variation zu berücksichtigen,
kann der erweiterte Vorspann die Fähigkeit haben, verschiedene
Typen von Informationen zu ändern
und je nach Bedarf dem Cache-Proxyserver 401 zur Verfügung zu
stellen.
-
Gemäß einer
Ausführungsform
der Erfindung besteht im Betrieb ein erweiterter Vorspann aus normalen
Vorspannfeldern. Der Durchschnittsfachmann ist mit den verschiedenen
Vorspannfeldern vertraut, die normalerweise im Betrieb verwendet werden.
Unmittelbar auf die normalen Vorspannfelder folgen Vorspann-Erweiterungsfelder.
Das Erweiterungsfeld besteht aus mehreren Untererweiterungen. Es
können
mehrere Vorspann-Untererweiterungen vorliegen, die miteinander nicht
in Beziehung stehen und je nach der Anforderung des Cache-Proxyservers 401 verschieden
sein können.
Die Untererweiterungen können
einen Erweiterungstyp "se" aufweisen. Die Länge der
RTP-Erweiterung kann die Gesamtlänge
aller Untererweiterungen sein und kann in 32Bit-Wörtern definiert
werden, so dass sie vollständig
mit dem RTP-Protokoll
kompatibel sind.
-
Das
Untererweiterungsformat "se" kann derart sein,
dass eine Untererweiterungs-ID unmittelbar auf das normale RTP-Vorspannfeld
folgt. Die ID kann die Untererweiterung innerhalb des RTP-Pakets identifizieren.
Diese ID kann eine Ein-Oktett-ID sein, die vom Server 301 für jede individuell
benannte RTP-Untererweiterung erzeugt wird. Jede Untererweiterung
kann auch einen eindeutigen Namen haben, der durch einen 4-Zeichen-Namenscode
definiert ist. Dieser Namenscode identifiziert und beschreibt den
Datentyp in jeder Untererweiterung auf eindeutige Weise. Beispielsweise
kann der 4-Zeichen-Namenscode für
eine Übertragungszeit-Untererweiterung "trti", die Frame-Typ-Untererweiterung "frty", und die Paketposition-Untererweiterung "papo" sein. Dieser Namenscode
ist der (vom Server 301 erzeugten) Ein-Oktett-ID zugeordnet, so
dass der Cache-Proxyserver 401 aus der Oktett-ID die geeigneten
RTP-Erweiterungsdaten identifizieren kann, wenn er Streaming-Media-Daten
empfängt.
-
Bei
einer Ausführungsform
der vorliegenden Erfindung kann der eindeutige Name, der den Streaming-Media-Daten
für Frame-Typ-Informationen
zugeordnet ist, "frty" sein. Der eindeutige
Name "frty" kann auch eine unsignierte
ganze Zahl haben, die jedem verschiedenen Frametyp zugeordnet ist.
Bei einer Ausführungsform
kann die unsignierte ganze Zahl "1" sein für einen
Schlüssel-Frame, "2" für
einen p-Frame, und "3" für einen
b-Frame. Ein Anwender kann zukünftig
auch jegliche zusätzliche
Frames je nach zusätzlichem
Bedarf und technologischem Fortschritt hinzufügen und dieses Vorspannformat
ohne die Notwendigkeit größerer Modifikationen
anwenden.
-
Bei
einer anderen Ausführungsform
der vorliegenden Erfindung kann der eindeutige Name, der Streaming-Media-Daten
für Übertragungszeittyp-Informationen
zugeordnet ist, "trti" sein.
-
Bei
einer anderen Ausführungsform
der vorliegenden Erfindung kann der eindeutige Name, der Streaming-Media-Daten
für Paketpositionstyp-Informationen
zugeordnet ist, "papo" sein.
-
9 zeigt
ein beispielhaftes Verfahren von mehreren Aspekten der vorliegenden
Erfindung. In einem Abschnitt 901 fordert ein Cache-Proxyserver 401 Streaming-Media-Daten von einem
Ursprungs-Server 301 an und fordert des Weiteren namentlich
eine oder mehr RTP-Erweiterungen an. Diese Anforderung wird unter
Verwendung des RTSP-Protokolls vorgenommen. In der Operation 903 gibt
der Server typischerweise (z.B. wenn es sich bei der Antwort um
ein Echo handelt) eine Antwort, die seine Unterstützung für die angeforderten RTP-Erweiterungen
anzeigt, zurück
an den Cache-Proxyserver 401. Der Server 301 überträgt an den
Cache-Proxyserver 401 auch eine Identifikation wie etwa
einen Zahlencode, der jedem Namen der angeforderten RTP-Erweiterungen
entspricht. Typischerweise verwendet der Cache-Proxyserver 401 den
Zahlencode später
beim Identifizieren von empfangenen erweiterten RTP-Daten. Der Zahlencode ermöglicht es
dem Cache-Proxyserver 401, die verschiedenen Typen von
RTP-Erweiterungsdaten in den Streaming-Media zu identifizieren,
die er empfängt,
da der Server 301 möglicherweise
den Namen nicht zum Bezeichnen des RTP-Erweiterungstyps verwendet.
In der Operation 905 empfängt der Cache-Proxyserver 401 die
Antwort des Servers 301, und daraufhin bestimmt der CP-Server 401 in
der Operation 907, ob der Server 301 auf alle
angeforderten RTP-Erweiterungen
geantwortet hat.
-
Falls
der Server 301 nicht auf alle angeforderten RTP-Erweiterungen
geantwortet hat, geht die Verarbeitung weiter zu der Operation 909,
gefolgt von der Operation 911, in der bestimmt wird, ob
jegliche der fehlenden RTP-Erweiterungen für die Verarbeitung durch den
Cache-Proxyserver 401 von entscheidender Wichtigkeit sind.
Falls sie nicht von entscheidender Wichtigkeit sind, geht die Verarbeitung weiter
zu der Operation 921. Falls sie von entscheidender Wichtigkeit
sind, bestimmt der Cache-Proxyserver 401 in
der Operation 913, ob die Operation/Kommunikation mit dem
Ursprungs-Server 301 beendet werden soll oder nicht. Wie
in den Operationen 915 oder 917 gezeigt ist, kann
der Cache-Proxyserver 401 die Operationer/Kommunikationen
mit dem Server 301 für
diese jeweiligen Streaming-Media-Daten, die angefordert wurden,
beenden, oder sie gehen dazu über,
die Streaming-Media und jegliche unterstützte Erweiterungen, die zur
Verfügung gestellt
werden können,
zu empfangen.
-
In
der Operation 921 fordert der CP-Server 401 den
Ursprungs-Server 301 auf, die angeforderten Streaming-Media-Daten
und die ihnen zugeordneten RTP-Erweiterungen zu senden. Bei einer
Ausführungsform überträgt der CP-Server 401 eine "PLAY"-Anforderung unter
Verwendung von RTSP, was den Server 301 veranlasst, in
der Operation 923 zu antworten, indem er die Streaming-Media-Daten und
die zugeordneten RTP-Erweiterungen überträgt. In der Operation 925 speichert
der CP-Server 401 die vom
Server 301 empfangenen Streaming-Media-Daten und speichert
auch die zugeordneten RTP-Erweiterungsdaten. In der Operation 927 kann
der CP-Server 401 bestimmte
RTP-Erweiterungsdaten wie etwa die Übertragungszeit oder die Frame-Typ-Daten
aus der Streaming-Media-Datei entfernen. Dies wird getan, um zu
vermeiden, dass die Übertragungszeit- oder
Frame-Typ-Informationen an den Client 302 gesendet werden,
der Streaming-Media-Daten anfordert. Die aus den Streaming-Media-Daten
entfernten RTP-Erweiterungsdaten werden separat gespeichert, aber
den Streaming-Media-Daten zugeordnet. Beispielsweise werden Übertragungszeiten
für verschiedene
Pakete separat von den Paketen gespeichert, aber die in den vom
Server 301 empfangenen Daten vorliegende Zuordnung zwischen
der Übertragungszeit
und den entsprechenden Paketen wird selbst dann beibehalten, wenn
die Übertragungszeiten
separat gespeichert werden, so dass der Cache-Proxyserver 401 die
angemessene Übertragungszeit
für jedes
der Pakete in den Streaming-Media-Daten
bestimmen kann. In der Operation 929 bewertet der Cache-Proxyserver 401 die
Anforderung von Streaming-Media-Daten durch einen Client 302 und
rea giert entsprechend. Es ist anzumerken, dass ein Client 302 Verhandlungen über Streaming-Media-Daten
unter Verwendung des RTSP-Protokolls durchführt, und dass der CP-Server 401 mit
den Streaming-Media-Daten antwortet, indem er die Daten an den Client 302 überträgt. Darüber hinaus
kann der Client 302 das Ausdünnen von Frames anfordern. Weiterhin
kann der Cache-Proxyserver 401 die Übertragungszeiten verwenden,
um zu bestimmen, wann verschiedene Paketen in den Streaming-Media-Daten
an den Client 302 übertragen
werden sollen.
-
11 zeigt
einen Typ von beispielhaften maschinenlesbaren Medien (z.B. RAM
oder Festplatte oder eine Kombination daraus) zum Speichern von ausführbaren
Computerprogrammanweisungen für einen
Cache-Proxyserver 401, der gemäß der vorliegenden Erfindung
verwendet werden kann. Der Cache-Proxyserver 401 besitzt
typischerweise seine eigene Betriebssystem (OS)-Software 1101.
Diese Software 1101 kann das Macintosh-OS sein, oder Windows
NT oder Unix, oder andere allgemein bekannte Betriebssysteme.
-
Die
Steuersoftware 1102 ist zum Übertragen oder Empfangen von
Streaming-Media-Daten
unter Verwendung z.B. des RTP- und RTSP-Protokolls. Die Software 1102 ist
normalerweise in der Lage, verschiedene Typen von Streaming-Media-Datenpaketen
abzurufen oder zu senden und Befehle zum Speichern der empfangenen
Media in einer Speichereinrichtung 601 zu richten. Somit
führt die
Software 1102 den Verhandlungsvorgang mit einem Ursprungs-Server 301 durch
und empfängt
Streaming-Media-Daten und
deren zugeordnete RTP-Erweiterungen, und veranlasst, dass die Streaming-Media-Daten
und deren zugeordnete RTP-Erweiterungen auf einer von dem Cache-Proxyserver 401 gesteuerten
Speichervorrichtung gespeichert werden. 11 zeigt
das Speichern von zwei Streaming-Media-Datendateien 1103 und 1104.
-
Die
Streaming-Media-Datendatei 1103 kann Streaming-Media-Daten
1 im Streaming-Media-Format 1105, eine den Streaming-Media
1 zugeordnete Übertragungszeit
(1106), und einen den Streaming-Media 1 zugeordneten Frame-Typ
(1107) enthalten. Bei einer Ausführungsform können das
Betriebssystem 1101 und die Steuersoftware 1102 die Fähigkeit
besitzen, die Streaming-Media-Daten in Paket 1 von anderen Paketen
zu trennen und sie separat in einer Speichereinrichtung 601 zu
speichern und die RTP-Erweiterungen (z.B. Transmit Time-Daten oder
Frame Type-Daten) aus den gespeicherten Streaming-Media-Paketen
zu extrahieren und sie separat zu speichern, so dass diese Pakete
die RTP-Erweiterungen nicht beinhalten.
-
Die
Streaming-Media-Datendatei von 1104 kann Streaming-Media-Daten
2 im Streaming-Media-Format 1108, eine den Streaming-Media-Daten
2 zugeordnete Übertragungszeit
(1109), und einen den Streaming-Media-Daten 2 zugeordneten
Frame-Typ (1110) enthalten.
-
Die
Streaming-Media-Daten 1105 und 1108 weisen üblicherweise
nicht das gleiche Originalformat auf, da sich die Mediadaten am
Ursprungs-Server 301 befanden. Die Streaming-Media-Daten 1105 und 1108 können jedoch
eine vollständige "unverfälschte" Kopie der ursprünglichen
Mediadaten sein, da die Erweiterung "papo" vom
Cache-Proxyserver 401 verwendet werden kann, um in den
Streaming-Media-Daten 1105 und 1108 nach jeglichen fehlenden
Paketen zu suchen und diese Pakete (erneut) vom Ursprungs-Server
anzufordern.
-
12 zeigt
einen Typ von beispielhaften maschinenlesbaren Medien (z.B. RAM
oder Festplatte oder eine Kombination daraus) zum Speichern von ausführbaren
Computerprogrammanweisungen für einen
Ursprungs-Server 301, die gemäß der vorliegenden Erfindung
verwendet werden können.
Der Server 301 besitzt typischerweise sein eigenes Betriebssystem 1201.
-
Die
Steuersoftware 1202 ist zum Übertragen von Streaming-Media-Daten
an einen Cache-Proxyserver 401 oder an einen Client 302 unter
Verwendung des RTP- und RTSP-Protokolls und der RTP-Erweiterungen
der Erfindung vorgesehen. Ferner empfängt die Software 1202 Anforderungen
von Streaming-Media von einem Client 302 oder einem Cache-Proxyserver 401 und
verhandelt mit einem Cache-Proxyserver 401 über verschiedene
Typen von Streaming-Media-Daten und zugeordnete RTP-Erweiterungen, und
antwortet auf verschiedene Anforderungen durch Cache-Proxyserver 401 oder Clients 302.
-
Die
Software 1204 konvertiert ursprüngliche Mediadaten 1203,
die üblicherweise
nicht in einem Paketformat vorliegen, in ein Streaming-Media-Datenformat
(z.B. Paketformat) für
die Übertragung
an den Cache-Proxyserver 401 oder den Client 302. Nach
der Konvertierung sind die konvertierten Streaming-Media-Daten eine
Darstellung der ursprünglichen
Mediadaten 1203 mit einem anderen Format als dem Format
der ursprünglichen
Mediadaten 1203.
-
Die
Software 1206 erzeugt RTP-Erweiterungsvorspanne, die verschiedenen
Typen von Streaming-Media-Daten zugeordnet sind. Das System kann
verschiedene ID-Namen
und Codes 1205, die verschiedenen RTP-Erweiterungen zugeordnet
sind, verschiedenen Typen von Streaming-Media-Daten zuweisen, bevor
sie an einen Cache-Proxy 401 oder einen Client 301 gesendet
werden. Die Software 1206 in Verbindung mit der Software 1202 führt den Verhandlungsvorgang
mit einem Cache-Proxyserver 401 durch
(oder in einigen Fällen,
in denen der Client eine RTP-Erweiterung anfordert, wie etwa eine
Sicherung oder Verschlüsselung
oder Verifizierungserweiterung, mit dem Client), um RTP-Erweiterungsdaten
für zugeordnete
Streaming-Media-Daten zu übertragen,
und führt
auch den Vorgang des Übertragens von
Streaming-Media-Daten mit ihrer zugeordneten RTP-Erweiterung durch.
-
13 zeigt
einen Typ von beispielhaften maschinenlesbaren Medien (z.B. RAM
oder Festplatte oder eine Kombination daraus) zum Speichern von ausführbaren
Computerprogrammanweisungen für einen
Client-Server 302, der gemäß der vorliegenden Erfindung
verwendet werden kann. Der Client-Server 302 besitzt typischerweise
sein eigenes Betriebssystem 1301 wie etwa ein Macintosh-OS,
oder Windows NT, oder Unix, oder andere allgemein bekannte Betriebssysteme.
Das Medium des Client kann auch Web Browser-Software 1303 wie
etwa Navigator von Netscape oder Internet Explorer von Microsoft
beinhalten.
-
Die
Streaming-Media-Datenspieler-Software 1302 ist zum Empfangen
und Abspielen von Streaming-Media-Daten bestimmt, die unter Verwendung des
RTP-Protokolls an den Client übertragen
werden. Die Streaming-Media-Datenspieler-Software 1302 kann
QuickTime-Software von Apple Computer oder der Real Player von Real
Networks sein. Die Streaming-Media-Datenspieler-Software 1302 ist
typischerweise in der Lage, Anfragen nach verschiedenen Typen von
Streaming-Media-Daten an einen Cache-Proxyserver 401 oder
einen Server 301 zu senden und eine Darstellung von Streaming-Media-Daten
zu empfangen und zu präsentieren
(z.B. Bilder anzuzeigen und Ton zu erzeugen).
-
Bei
wieder einer anderen Ausführungsform kann
die Streaming-Media-Datenspieler-Software 1302 in
der Lage sein, mit einem Cache-Proxyserver 401 zu kommunizieren
und zu verhandeln, um einen ankommenden Datenverkehr zu regulieren
und seine Last besser zu bewältigen
(beispielsweise kann die Software 1302 einen CP-Server 401 auffordern,
ein Ausdünnen
von Frames durchzuführen).