GEBIET DER
ERFINDUNGAREA OF
INVENTION
Die
vorliegende Erfindung bezieht sich auf 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.The
The present invention relates to the field of multimedia data transmission.
In particular, the present invention relates to an exemplary
embodiment
the multimedia data transfer
from real-time transfer protocol
(Real-time Transfer Protocol; RTP) packets using a
Real Time Streaming Protocol (RTSP)
in a computer network environment.
EINFÜHRUNG UND HINTERGRUND DER ERFINDUNGINTRODUCTION AND BACKGROUND OF THE INVENTION
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.method
to transfer
Data is well known and routinely used today
uses various multimedia data such as text, graphics,
Audio, video, pictures, etc. over
To send computer networks, which are in different parts of the
World. In general, the transfer process requires both hardware
as well as software for
the fulfillment of his
Function. Typically, the hardware includes several types
PCs and handheld devices for sending or receiving
of multimedia data. These devices are under control
through an operating system and use multimedia application software programs.
As is known in the art, streaming media data is
such data transmitted to a receiving computer system
and (usually
after a temporary caching at the receiving
System) and then discarded at the receiving system
(not saved).
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.Currently
are data in the form of packets from a multimedia device
sent to another. In the data packets must be a large amount
of information being sent in real time, resulting in a high
Loading the systems leads.
Streaming media data such as real-audio data in the Real
Networks specified streaming media format will be in many
make
in near real time over
sent the internet.
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.In one approach, the components involved in data transmission from streaming media are known as a server (which may be referred to as origin server), a cache proxy server, and a client. These components communicate with each other in various combinations for transmitting data packets in real time. The communication link currently present between the components uses real-time transfer protocols (RTP) and real-time streaming protocols (RTSP) to communicate with each other and send packets among each other. For this approach to work, a cache proxy server must communicate with the system server, receive a stream of RTP data packets, and transfer the information contained in the RTP data packets to a client. 1a Figure 14 shows an example of an earlier method in which a cache proxy server receives streaming media data and makes that data available to a client. To properly and effectively perform its function, the cache proxy server requires multiple information from the server to cache an RTP stream easily and reliably.
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.One
Problem with the current solution
It is that he is unable to do some of the essential
Information available
such as data packet transmission time and information about the data packet transmission time
Video packet frame type,
which requires a cache proxy,
to work effectively. This information enables a cache proxy server
a smooth delivery of packages available to its client too
as a result of the knowledge of the date on which an RTP data packet
should be sent, and the type of video frame sent without the specific
Know payload format. Another problem with the current one
approach
it is that he is unable to cache the proxy server several times
unrelated data in a broadcast
to disposal
to deliver. About that
In addition, packets may be "lost" by the server and never by the cache proxy server
Arrive. Furthermore, there is usually no way
on the cache proxy server
to restore a complete, "unadulterated" copy.
Server
des Standes der Technik teilen dem Cache-Proxyserver RTP-Informationen
mit, indem sie Informationen über
einen Cache-Steuer-Header senden. Bei einem Lösungsansatz enthält ein Cache-Steuer-Header
normale Header-Felder. 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 Header hinzugefügt und jeweils
gesendet werden.server
The prior art shares RTP information with the cache proxy server
by giving information about
send a cache control header. One approach involves a cache control header
normal header fields. In a different approach that is not
dealt with a cache control of RTP information was the
normal fields in a header extension format a single one
Type of additional
Added information,
without the type of extra
Specify information specifically. In this approach, only a single
RTP extension object added to the normal field of the header and respectively
be sent.
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.One problem with using this limited, non-extensible approach is that a server is unable to attach multiple sets of non-referenced data to send to the cache proxy server. Another problem with this solution It is stated that the header extensions used in these methods are not yet able to provide all the information that a cache proxy server needs to properly cache a stream and properly transfer the stream. Yet another problem with this approach is that there is no way to identify the particular extension independently of other possible extensions.
In
der Druckschrift "Internet
Telephony architecture and protocols – an IETF perspective", H. Schulzrinne,
J. Rosenberg, Computer Networks, Elsevier Science Publishers B.
V., Amsterdam, NL, Vol. 31, Nr. 3, 11. Februar 1999, Seiten 237–255 werden Komponenten
des oberen Schicht – Protokolls
beschrieben, welche spezifisch für
Internettelephonie-Dienste sind, insbesondere RTP, um Sprach- und Videodaten
zu übertragen,
und SIP zum Signalisieren. Wenn ein Host ein Medien-Paket senden will, nimmt
er die Medien, formatiert sie für
eine Paketisierung, fügt
beliebige medienspezifische Paket-Header hinzu, stellt den RTP-Header
voran und ordnet es in Nutzlast niedriger Schicht an. Der verwendete RTP-Header
ist 12 Bytes lang, weist ein Feld, welches die Protokoll-Version
anzeigt, und ein Markierungszeichen auf, welches das Vorhandensein
einer Header-Erweiterung zwischen dem festen Header und der Nutzlast
anzeigt.In
the publication "Internet
Telephony architecture and protocols - an IETF perspective ", H. Schulzrinne,
J. Rosenberg, Computer Networks, Elsevier Science Publishers B.
V., Amsterdam, NL, Vol. 31, No. 3, 11 February 1999, pages 237-255 become components
of the upper layer protocol
which are specific for
Internet telephony services, in particular RTP, are voice and video data
transferred to,
and SIP for signaling. When a host wants to send a media packet, it takes
he formats the media, formats them for
a packaging, adds
Adding any media-specific packet headers represents the RTP header
precede and arrange it in payload of lower layer. The used RTP header
is 12 bytes long, indicates a field containing the protocol version
and a flag indicating the presence
a header extension between the fixed header and the payload
displays.
Keiner
der Schritte des erfindungsgemäßen Verfahrens
ist in dieser Druckschrift beschrieben.none
the steps of the method according to the invention
is described in this document.
ZUSAMMENFASSUNG DER ERFINDUNGSUMMARY OF THE INVENTION
Die
vorliegende Erfindung stellt ein Verfahren, ein maschinenlesbares
Medium und ein System zum Erweitern eines RTP Headers gemäß der Definition
durch die Gegenstände
der Patentansprüche 1,
18 und 35 zur Verfügung.
Hierbei können
vorteilhaft 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
fü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übertragungsvorgang 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 Header-Format.The
The present invention provides a method, a machine-readable
Medium and a system for extending an RTP header as defined
through the objects
of the claims 1,
18 and 35 available.
Here you can
advantageous multimedia data using streaming media protocols
such as real-time transfer protocols (RTP) and real-time streaming protocols
(RTSP) in a computer network environment. At a
exemplary embodiment
is a request for RTP data from the cache proxy server to the
Server sent. The requirement may be specific
Data type and related extensions or
to several unrelated types of data and related to that
related extensions. The server responds to the request
by giving his support
for the
displays requested RTP data. The cache proxy server determines
based on the response provided by the server, whether
the data transmission
continued
or should be ended. If it is determined that the data transfer operation is continued
To do this, the cache proxy alerts the server to the requested one
and supported
To send RTP data. The server sends the requested data in
a variable and extensible header format.
Bei
einer anderen Ausführungsform
fordert der Cache-Proxyserver Paket-Übertragungszeit-Daten
und/oder des Paket-Frame-Typ-Daten vom Server an, und empfängt diese.
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.at
another embodiment
the cache proxy server requests packet transfer time data
and / or the packet frame type data from the server, and receives them.
The cache proxy server uses the frame type data to access the
Basis of ability
the client to handle loads at specific times to communicate with the client
and frames available
to deliver. The transmission time data
are also used by the cache proxy to ensure smooth delivery
packages to store packages locally and make these packages appropriate
To deliver times to the client.
Gemäß einer
ersten Ausführungsform
der Erfindung weist ein Verfahren zum Erweitern eines RTP-Header
auf:
Hinzufügen
einer ersten RTP-Untererweiterungs-ID an einen RTP-Header;
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;
wobei nachfolgende
RTP-Untererweiterungen auf die erste RTP-Untererweiterung folgen.According to a first embodiment of the invention, a method for extending an RTP header comprises:
Adding a first RTP sub-extension ID to an RTP header;
Defining a length of the first RTP sub-extension by providing a sub-extension length;
Supplying data corresponding to the RTP sub-extension ID within the length defined for the first RTP sub-extension;
subsequent RTP sub-extensions following the first RTP sub-extension.
Auf
vorteilhafte Weise wird die Länge
der RTP-Untererweiterung durch eine ganze Zahl von 32 Bit-Wörtern definiert.On
Advantageously, the length
the RTP sub-extension is defined by an integer number of 32-bit words.
Auf
vorteilhafte Weise folgt die erste RTP-Untererweiterung direkt auf
den RTP-Header.On
Advantageously, the first RTP sub-extension follows directly
the RTP header.
Auf
vorteilhafte Weise folgen auf die RTP-Untererweiterungslänge direkt
RTP-Untererweiterungsdaten
und geht eine RTP-Untererweiterungs-ID der RTP-Untererweiterungslänge direkt
voraus.On
Advantageously, the RTP sub-extension length follows directly
RTP sub-extension data
and directly goes to an RTP sub-extension ID of the RTP sub-extension length
ahead.
Auf
vorteilhafte Weise enthält
die RTP-Untererweiterung Übertragungszeitinformationen
von jedem RTP-Paket.On
contains advantageous manner
the RTP sub extension transmission time information
from every RTP package.
Auf
vorteilhafte Weise enthält
die RTP-Untererweiterung ständige
ID-Informationen.On
contains advantageous manner
the RTP sub-extension persistent
ID information.
Auf
vorteilhafte Weise enthält
die RTP-Untererweiterung Frame-Typ-Informationen.On
contains advantageous manner
the RTP sub-extension frame-type information.
Auf
vorteilhafte Weise ist der Frame-Typ ein unsignierter ganzzahliger
16-Bit-Wert, der für
jeden Wert einen verschiedenen Frame darstellt.On
Advantageously, the frame type is an unsigned integer
16-bit value for
each value represents a different frame.
Auf
vorteilhafte Weise weist die unsignierte ganze Zahl und der Frame-Typ
auf:
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.Advantageously, the unsigned integer and the frame type have:
Assigning an integer value "0" to an unknown frame type;
an integer value "1" to a key frame type;
an integer value "2" to a p-frame type, and
an integer value "3" to a b-frame type.
Auf
vorteilhafte Weise ist der Schlüssel-Frame
bezüglich
einer Priorität
gegenüber
beliebigen anderen Frames am wichtigsten.On
Advantageous way is the key frame
in terms of
a priority
across from
most importantly, any other frames.
Auf
vorteilhafte Weise ist der p-Frame bezüglich einer Priorität weniger
wichtig als der Schlüssel-Frame
und bezüglich
einer Priorität
wichtiger als der b-Frame.On
Advantageously, the p-frame is less in priority
important as the key frame
and re
a priority
more important than the b-frame.
Auf
vorteilhafte Weise ist der b-Frame bezüglich einer Priorität weniger
wichtig als der p-Frame.On
Advantageously, the b-frame is less in priority
important as the p-frame.
Auf
vorteilhafte Weise ist der b-Frame bezüglich einer Priorität weniger
wichtig als der Schlüssel-Frame.On
Advantageously, the b-frame is less in priority
important as the key frame.
Auf
vorteilhafte Weise ist der unbekannte Frame bezüglich einer Priorität entweder
wichtiger oder weniger wichtig als der Schlüssel-Frame, der p-Frame und
der b-Frame.On
Advantageously, the unknown frame is either in priority
more important or less important than the key frame, the p-frame and
the b-frame.
Auf
vorteilhafte Weise ist der Schlüssel-Frame
bezüglich
einer Priorität
wichtiger als p-Frames, b-Frames und beliebige andere Frames.On
Advantageous way is the key frame
in terms of
a priority
more important than p-frames, b-frames, and any other frames.
Gemäß einer
weiteren Ausführungsform
der Erfindung stellt ein maschinenlesbares Medium ausführbare Befehle
zur Verfügung,
welche bei ihrer Ausführung
durch eine Gruppe von Prozessoren veranlassen, dass die Prozessoren
Arbeitsschritte zum Erweitern eines RTP-Headers durchführen, welche aufweisen:
Hinzufügen einer
ersten RTP-Untererweiterungs-ID an einen RTP-Header;
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;
wobei nachfolgende
RTP-Untererweiterungen auf die erste RTP-Untererweiterung folgen.According to another embodiment of the invention, a machine-readable medium provides executable instructions which, when executed by a group of processors, cause the processors to perform operations to expand an RTP header, comprising:
Adding a first RTP sub-extension ID to an RTP header;
Defining a length of the first RTP sub-extension by providing a sub-extension length;
Supplying data corresponding to the RTP sub-extension ID within the length defined for the first RTP sub-extension;
subsequent RTP sub-extensions following the first RTP sub-extension.
Auf
vorteilhafte Weise wird die Länge
der RTP-Untererweiterung durch eine ganze Zahl von 32 Bit-Wörtern definiert.On
Advantageously, the length
the RTP sub-extension is defined by an integer number of 32-bit words.
Auf
vorteilhafte Weise folgt die erste RTP-Untererweiterung direkt auf
den RTP-Header.On
Advantageously, the first RTP sub-extension follows directly
the RTP header.
Auf
vorteilhafte Weise folgen auf die RTP-Untererweiterungslänge direkt
RTP-Untererweiterungsdaten
und geht eine RTP-Untererweiterungs-ID der RTP-Untererweiterungslänge direkt
voraus.On
Advantageously, the RTP sub-extension length follows directly
RTP sub-extension data
and directly goes to an RTP sub-extension ID of the RTP sub-extension length
ahead.
Auf
vorteilhafte Weise enthält
die RTP-Untererweiterung Übertragungszeitinformationen
von jedem RTP-Paket.On
contains advantageous manner
the RTP sub extension transmission time information
from every RTP package.
Auf
vorteilhafte Weise enthält
die RTP-Untererweiterung ständige
ID-Informationen.On
contains advantageous manner
the RTP sub-extension persistent
ID information.
Auf
vorteilhafte Weise enthält
die RTP-Untererweiterung Frame-Typ-Informationen.On
contains advantageous manner
the RTP sub-extension frame-type information.
Auf
vorteilhafte Weise ist der Frame-Typ ein unsignierter ganzzahliger
16-Bit-Wert, der für
jeden Wert einen verschiedenen Frame darstellt.On
Advantageously, the frame type is an unsigned integer
16-bit value for
each value represents a different frame.
Auf
vorteilhafte Weise weist die unsignierte ganze Zahl und der Frame-Typ
auf:
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.Advantageously, the unsigned integer and the frame type have:
Assigning an integer value "0" to an unknown frame type;
an integer value "1" to a key frame type;
an integer value "2" to a p-frame type, and
an integer value "3" to a b-frame type.
Auf
vorteilhafte Weise ist der Schlüssel-Frame
bezüglich
einer Priorität
gegenüber
beliebigen anderen Frames am wichtigsten.On
Advantageous way is the key frame
in terms of
a priority
across from
most importantly, any other frames.
Auf
vorteilhafte Weise ist der p-Frame bezüglich einer Priorität weniger
wichtig als der Schlüssel-Frame
und bezüglich
einer Priorität
wichtiger als der b-Frame.On
Advantageously, the p-frame is less in priority
important as the key frame
and re
a priority
more important than the b-frame.
Auf
vorteilhafte Weise ist der b-Frame bezüglich einer Priorität weniger
wichtig als der p-Frame.On
Advantageously, the b-frame is less in priority
important as the p-frame.
Auf
vorteilhafte Weise ist der b-Frame bezüglich einer Priorität weniger
wichtig als der Schlüssel-Frame.On
Advantageously, the b-frame is less in priority
important as the key frame.
Auf
vorteilhafte Weise ist der unbekannte Frame bezüglich einer Priorität entweder
wichtiger oder weniger wichtig als der Schlüssel-Frame, der p-Frame und
der b-Frame.On
Advantageously, the unknown frame is either in priority
more important or less important than the key frame, the p-frame and
the b-frame.
Auf
vorteilhafte Weise ist der Schlüssel-Frame
bezüglich
einer Priorität
wichtiger als p-Frames, b-Frames und beliebige andere Frames.On
Advantageous way is the key frame
in terms of
a priority
more important than p-frames, b-frames, and any other frames.
Gemäß einer
weiteren Ausführungsform
der Erfindung wird ein System zum Erweitern eines RTP-Header zur
Verfügung
gestellt, welches aufweist:
Mittel zum Hinzufügen einer
ersten RTP-Untererweiterungs-ID zu einem RTP-Header;
Mittel zum Definieren einer
Länge der
ersten RTP-Untererweiterung, indem eine Untererweiterungslänge zur
Verfügung
gestellt wird;
Mittel zum Liefern von Daten, die der RTP-Untererweiterungs-ID
entsprechen, innerhalb der für
die erste RTP-Untererweiterung definierten Länge; und
Mittel, die so
eingerichtet sind, dass nachfolgende RTP-Untererweiterungen auf
die erste RTP-Untererweiterung folgen.According to another embodiment of the The invention provides a system for extending an RTP header, comprising:
Means for adding a first RTP sub-extension ID to an RTP header;
Means for defining a length of the first RTP sub-extension by providing a sub-extension length;
Means for providing data corresponding to the RTP sub-extension ID within the length defined for the first RTP sub-extension; and
Means set up for subsequent RTP sub-extensions to follow the first RTP sub-extension.
Die
abhängigen
Ansprüche
definieren Ausführungsbeispiele
der Erfindung.The
dependent
claims
define embodiments
the invention.
Weitere
Merkmale und Vorteile der vorliegenden Erfindung ergeben sich aus
den beigefügten Zeichnungen
und aus der nachfolgenden ausführlichen
Beschreibung.Further
Features and advantages of the present invention will become apparent
the attached drawings
and from the following detailed
Description.
KURZE BESCHREIBUNG DER
ZEICHNUNGBRIEF DESCRIPTION OF THE
DRAWING
Die
vorliegende Erfindung wird durch die Figuren der beigefügten Zeichnungen,
in denen gleiche Bezugszeichen ähnliche
Elemente bezeichnen, beispielhaft veranschaulicht und nicht eingeschränkt:The
The present invention is illustrated by the figures of the attached drawings,
in which like reference numerals are similar
Denote elements, exemplified and not limited:
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. 1a Figure 13 shows a flow diagram of a prior art method of transferring streaming media data to a cache proxy server and then to a client.
1b veranschaulicht
ein Netz von Computersystemen, in dem Mediadaten ausgetauscht und/oder
verarbeitet werden können,
gemäß einer Ausführungsform
der vorliegenden Erfindung. 1b FIG. 12 illustrates a network of computer systems in which media data may be exchanged and / or processed according to an embodiment of the present invention.
2 veranschaulicht
ein Blockdiagramm eines beispielhaften digitalen Verarbeitungssystems, das
gemäß einer
Ausführungsform
der vorliegenden Erfindung verwendet werden kann. 2 FIG. 12 illustrates a block diagram of an exemplary digital processing system that may be used in accordance with one embodiment of the present invention.
3 veranschaulicht
eine Ausführungsform
eines Verfahrens für
die Kommunikation zwischen einem Server und einem Client unter Verwendung
von RTSP- und RTP-Protokollen. 3 illustrates an embodiment of a method for communication between a server and a client using RTSP and RTP protocols.
4 veranschaulicht
eine weitere Ausführungsform
eines Verfahrens zur Kommunikation zwischen einem Server, einem
Cache-Proxyserver und einem Client. 4 illustrates another embodiment of a method for communication between a server, a cache proxy server, and a client.
5 veranschaulicht
eine Ausführungsform
eines RTSP-, RTP-Verhandlungsvorgangs zwischen einem Cache-Proxy
und einem Server. 5 Figure 12 illustrates one embodiment of an RTSP, RTP negotiation process between a cache proxy and a 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. 6 FIG. 12 illustrates one embodiment of a relationship between the server, the cache proxy, and the client during transfer of a Transmit Time (TT) sub-extension to the cache proxy server and its use of TT information in transmitting streaming data to a client.
7 veranschaulicht
eine Ausführungsform
des Vorgangs, der während
des Transfers einer Übertragungszeit-Untererweiterung
zwischen Server und Cache-Proxyserver stattfindet. 7 Figure 12 illustrates one embodiment of the process that occurs during the transfer of a sub-extension transfer time between server and cache proxy server.
8 veranschaulicht
eine Ausführungsform
des Vorgangs, der während
des Transfers einer Frame-Typ-Untererweiterung zwischen Server und Cache-Proxyserver
stattfindet. 8th Figure 12 illustrates one embodiment of the process occurring during the transfer of a frame-type sub-extension between server and cache proxy server.
9 ist
ein Ablaufdiagramm einer Ausführungsform
einer Operation, um verschiedene Typen von Informationen einem Cache-Proxy
in einem erweiterbaren Header-Format
zur Verfügung
zu stellen. 9 Figure 10 is a flow diagram of one embodiment of an operation to provide various types of information to a cache proxy in an extensible header format.
10 veranschaulicht
eine Ausführungsform
einer Beziehung zwischen dem Server, Cache-Proxy, und Client während eines
Transfers einer Frame-Typ-Untererweiterung. 10 Figure 12 illustrates one embodiment of a relationship between the server, cache proxy, and client during a frame-type sub-extension transfer.
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. 11 FIG. 12 illustrates a block diagram of a machine-readable medium that stores executable computer program instructions for execution by an exemplary cache proxy server and that may be used in accordance with an embodiment of the present invention.
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. 12 FIG. 12 illustrates a block diagram of a machine-readable medium that stores executable computer program instructions for execution by an exemplary source server (server) and that may be used in accordance with an embodiment of the present invention.
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. 13 FIG. 12 illustrates a block diagram of a machine-readable medium that stores executable computer program instructions for execution by an example client and that may be used in accordance with an embodiment of the present invention.
DETAILLIERTE BESCHREIBUNGDETAILED DESCRIPTION
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.A method and system are described that provide multimedia data transmission using real-time transfer protocol (RTP) and real-time streaming protocol (RTSP). For purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. For example, various system architectures of computer networks and digital processing systems are illustrative However, these are not to be construed as limitations of the present invention. However, it will be apparent to those skilled in the art that the present invention may be practiced without these specific details. In other examples, well-known structures and devices are shown in block diagram form to aid in explanation.
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. 1b Figure 10 is a diagram of a network of computer systems in which media data may be processed, according to one embodiment of the present invention. As shown in 1b For example, a number of client computer systems, one or more of which may represent an implementation of a receiving system, are over an Internet 122 coupled together. It is noted that the term "Internet" refers to a network of networks. Such networks may use a variety of protocols for information exchange such as TCP / IP, ATM, SNA, SDI, RTP, RTSP, etc. The physical connections of the Internet and the protocols and communication procedures of the Internet are well known to those skilled in the art. Access to the internet 103 is typically provided by Internet Service Providers (ISPs), such as the ISP 124 and the ISP 126 that also work with cache proxy servers 130 and 132 can be connected. Users on client systems such as the client computer systems 102 . 104 . 118 and 120 generally gain access to the Internet through Internet service providers such as the ISPs 124 and 126 also using the internet with cache proxy servers 130 and 132 can be connected. Access to the Internet may facilitate the transfer of information (eg, e-mail, text files, media files, etc.) between two or more digital processing systems, such as the client computer systems 102 . 104 . 118 and 120 and / or a streaming media server system 128 , which can be considered as the origin server from the cache proxy server receiving streaming media data.
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.For example, one or more of the client computer systems 102 . 104 . 118 and 120 and / or the streaming media server 128 Media data (eg, video and audio, or video, or audio) for one or more of the client computer systems 102 . 104 . 118 and 120 and / or the streaming media server 128 provide. These can be provided in response to a request. According to the present description, such media data may be in the system 100 be transferred in tracks. Such tracks may be generated in one embodiment of the invention according to a specific format of the streaming media data and / or specific data communication (eg, network) protocol (s).
Der
Streaming-Media-Server 128 besteht typischerweise aus mindestens
einem Computersystem fü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-Media-Daten
zur Verfügung
stellen, die von den Client-Computersystemen 102, 104, 118 und 120 angeboten
werden können.The streaming media server 128 typically consists of at least one computer system for operation with one or more data communication protocols, such as the protocols of the World Wide Web, and is thus typically Internet-based 122 coupled. Optionally, the streaming media server 128 Be part of an ISP that can provide access to the Internet and / or to another network for client computer systems. The client computer systems 102 . 104 . 118 and 120 In each case, with suitable web browsing software, data such as HTML documents (eg web pages) can be accessed by the streaming media server 128 can be made available. Such data may be provided by media such as QuickTime Movies or QuickTime streaming media data provided by the client computer systems 102 . 104 . 118 and 120 can be offered.
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.The ISP 124 Represents the client computer system 102 an internet connection via a modem interface 106 available as part of the client computer system 102 can be viewed. The client computer system may be a conventional computer system such as a Macintosh computer, a "network" computer, a portable computer, a Web TV system, or other types of digital processing systems (eg, a mobile phone with digital processing capability). Similarly, the ISP 126 an internet connection for the client computer systems 104 . 118 and 120 although as shown in FIG 1b such connectivity to various client computer systems, such as the client computer systems 102 . 104 . 118 and 120 can be different. Such as in 1b is shown is the client computer system 104 with the ISP 126 via a modem interface 108 coupled while the client computer systems 118 and 120 Part of a local area network (LAN). The interfaces 106 and 108 , in the 1b as modems 106 respectively. 108 may be an analog modem, an ISDN modem, a cable modem, a satellite transmission interface (eg, "Direct PC"), a wireless interface, or other interface for interfacing a digital processing system such as a client computer system to another digital one Be processing system. The client computer systems 118 and 120 are with a LAN bus 112 via the network interfaces 114 respectively. 116 coupled. The network interfaces 114 and 116 may be an Ethernet type, Asynchronous Transfer Mode (ATM), or another type of network interface. The LAN bus is also equipped with a gateway digital processing system 110 coupled, which can provide firewall and other Internet services for a LAN.
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.The gateway digital processing system 110 turn is with the ISP 126 coupled to an Internet connection for the client computer systems 118 and 120 to provide. The gateway digital processing system 110 For example, a conventional server may include a computer system. Similarly, the streaming media server 128 For example, include a conventional server computer system.
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.The system 100 It may be one or more of the client computer systems 102 . 104 . 118 and 120 and / or the streaming media server 128 enable media data (eg, video and audio, or video, or audio) for one or more other of the client computer systems 102 . 104 . 118 and 120 and / or the streaming media server 128 to provide.
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.Such data may be provided, for example, in response to a request by a receiving system, such as one or more of the client computer systems 102 . 104 . 118 and 120 is.
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. 2 FIG. 10 is a block diagram of an exemplary digital processing system that may be used in accordance with one embodiment of the present invention. For example, this can be done in 2 shown digital processing system 250 be used as a client computer system, a streaming media server system, a conventional server system, etc. Furthermore, the digital processing system 250 to use one or more functions of an Internet service provider, such as the ISP 124 or 126 perform. The digital processing system 250 can via a modem or a network interface 268 be paired with external systems. It should be noted that the modem or network interface 268 as part of the digital processing system 250 can be viewed. The modem or the network interface 168 may be an analog modem, an ISDN modem, a cable modem, a token ring interface, a satellite transmission interface, a wireless interface, or other interface (s) with which a data communication connection is provided between two or more digital processing systems becomes.
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 × 86)-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. Lache, Flash-Speicher,
Disk usw.) gekoppelt sein, die als Teil des Speichers 255 oder
separat von dem Speicher 255 angenommen werden könnten.The digital processing system 250 includes a processor 252 which may represent one or more processors and may include one or more conventional types of such processors as a Motorola PowerPC processor, an Intel Pentium (or × 86) processor, and so on. A store 255 is by a bus 256 with the processor 252 coupled. The memory 255 may be dynamic random access memory (DRAM) and / or static RAM (SRAM). The processor may also be coupled to other types of storage areas / memories (eg, pool, flash memory, disk, etc.) that are part of the memory 255 or separately from the store 255 could be accepted.
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 Kathodenstrahlrö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.The bus 256 further couples the processor 252 with a display controller 258 , a mass storage 262 , the modem or the network interface 268 , and an input / output (I / O) controller 264 , The mass storage 262 may represent a magnetic, optical, magneto-optical, tape and / or other type of machine-readable medium / information storage device. The mass storage 262 may for example stand for a hard disk, a read-only or writable optical CD, and so on. The display controller 258 controls a display conventionally 260 , which may stand for a cathode ray tube (CRT) display, a liquid crystal display (LCD), a plasma display or other type of display device. The I / O controller 264 controls the I / O device (s) 266 which may include one or more keyboards, mouse / trackball or other pointing devices, magnetic and / or optical disk drives, printers, scanners, digital cameras, microphones, etc.
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.It should be noted that the digital processing system 250 is just one example of a system that can have many different configurations and architectures and that can be used with the present invention. For example, Macintosh and Intel systems often have multiple buses, such as a peripheral bus, a dedicated cache bus, and so on. On the other hand, for example, a network computer usable as a digital processing device of the present invention may not have a hard disk or other mass storage device, but routines and / or data from a network connection such as the modem or the interface 268 for processing by the processor 252 can receive. Similarly, a Web TV system known in the art may be considered as a digital processing system of the present invention, however such a system may not include one or more I / O devices such as the one or more I / O devices above with reference to the I / O device (s) 266 has described. Furthermore, a portable communication and data processing system that may apply a mobile phone and / or paging capability may be considered a digital processing system useful in the present invention.
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 Daten kommunikationsnetz 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.In the in 2 shown system 250 can the mass storage 262 (and / or the memory 254 ) Store media (eg, video, audio, movies, etc.) that can be processed (eg, by means of tracks) in accordance with the present invention. Alternatively, media data may be from the digital processing system 250 for example via the modem or the network interface 268 received and stored and / or from the display 260 and / or the I / O device (s) 266 to get presented. In one embodiment, media data in packet form may be transmitted via a communication network such as a LAN and / or the Internet according to tracks. On the other hand, the processor can 252 execute one or more routines to use a file with one or more tracks, or alternatively to create one or more tracks to make media (eg, a pre-packaged movie, an audio file, video file, etc.) for presentation or packaging in accordance with the To process tracks. Such routines may be in the mass storage 262 the store 264 , and / or another machine-readable medium to which the digital processing system 250 can be accessed, stored. In one embodiment, the digital processing system 250 Process media data in which tracks are embedded. Similarly, such embedded media data may be stored in the mass storage 262 the store 264 , and / or another machine-readable medium to which the digital processing system 250 can be accessed, stored.
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. 3 shows an example of components that occur in data transfer scenarios. An origin server 301 and a client 302 are shown as components that occur in performing the transmission of streaming media data using RTP and RTSP protocols as one embodiment of the present invention. The origin server 301 and the client 302 can communicate with each other directly or through a link such as a cache proxy server. In one embodiment, the server may be 301 and the client 302 on separate local area networks (LANs). In another embodiment, the server may 301 and the client 302 connected via a wide area network (WAN). It can be one or more clients 302 be present with the server 301 directly or indirectly via an intermediary such as the Internet in communication with each other. The server 301 and the client 302 can work together to send different types of streaming media data in different formats.
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.In one embodiment, the streaming media data may be in a downstream direction from the server 301 to the client 302 be sent. In another embodiment, the client may 302 Requirements and other streaming media data information to the server 301 send.
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. 4 shows an example of an embodiment of a communication relationship between a client 302 a cache proxy server (CP) 401 and the source server 301 , There may be several types of connections between these components, but the client may 302 preferably via an internet connection to the cache proxy server 401 in communication, and the cache proxy server 401 can connect to the origin server via an internet connection 301 communicate.
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.A cache proxy server 401 can be over the internet with a single client 302 or with multiple clients 302 be connected. The cache proxy server 401 and its connected clients 302 can be on the same local network or connected via a wide area network. In one embodiment, it is preferred if the cache proxy server 401 and the client 302 or the clients 302 are connected via a local area network and are close to each other. An exemplary embodiment of a proximity connection may be a connection in a same company or the like, where the connection may interface with a broadband interface. The communication connection between the cache proxy server 401 and the client 302 can be of a variety of types, such as direct cable, fiber optic, radio frequency, etc. These connections are variable and vary according to the needs of a particular client 302 and technological advances.
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-Proxyservers 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 Ca che-Proxyservers 401,
eine unverfälschte
und qualitativ gute Kopie von Streaming-Media-Daten effizient und schnell an
den Client 302 zu liefern.An origin server 301 and a cache proxy server 401 may communicate with each other using a communication link such as direct cable, fiber optics, radio frequency, or the like. These connections are variable and vary according to requirements and technological advances. The cache proxy 401 can act as a link between the source server 301 and the client 302 for the transmission of streaming media data and as support for a smooth delivery of RTP packets from the server 301 to the client 302 serve. This can be a cache proxy server 401 perform several of its actual functions. In one embodiment, the functions of the cache proxy 401 thinning out frames, storing streaming media data locally, and staggering streaming media data to the client 302 be. In another embodiment, the functions of the cache proxy server 401 Negotiating with the origin server 301 for different RTP extensions related to different types of streaming Me dia data and receiving or responding to different client requests 302 etc. be. In one embodiment, it is one of the tasks of a cache proxy server 401 , an unadulterated and good quality copy of streaming media data efficiently and quickly to the client 302 to deliver.
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.Typically, a client can 302 a request directly to the cache proxy server 401 send. The cache proxy server 401 can then be at the request by the client 302 and either retrieve the requested items from the system server, or respond on their own. Its own response may consist of a copy of streaming media data already obtained from a source server and stored on a storage device controlled by the cache proxy server (eg, a cache proxy local hard disk). The system can also be configured to be the client 302 Requirements directly to the system server 301 sends, in which case the server 301 directly to the client 302 responds, or indirectly to the client 302 through a cache proxy server 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). 5 shows an exemplary method according to an embodiment of the present invention. In the operations of 5 communicate a source server (eg server 301 ) and a cache proxy server 401 with each other to assist in the smooth transmission of streaming media data. This communication supports a smooth delivery of parcels in many ways; among other things, it allows the cache proxy server 401 , good quality streaming media data at a high speed to the client 302 to deliver. In addition, communication also helps in assisting and managing the burden of the client by ensuring that the client 302 receives a reasonable amount of streaming media data, and no frames are dropped, or only frames of lesser importance are dropped (by thinning out 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.First, the cache proxy server prompts for the operation 501 Streaming media data from a source server. The request can be made by contacting the server 301 asks for "setup" in RTSP for audio or video streaming media data. The request may relate to one type of streaming media data or multiple types of streaming media. The request may refer to similar or unrelated types of streaming media data.
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.The server 301 receives the request from the cache proxy server 401 , and the server 301 works on the surgery 502 from 5 described way. The "SETUP" request in RTSP in operation 501 can through the cache proxy server 401 be initiated, regardless of a client system 302 that requests streaming media data or the request in operation 501 can through a client system 302 initiating the streaming media data from the cache proxy server 401 requesting the requested streaming media data in turn from the server 301 requests (if the cache proxy server 401 has not already stored the requested streaming media data under its control, like a cache proxy local hard disk 401 ). The cache proxy server 401 can also log the IP address of the client for later communication if a client has initiated the request.
Der
Cache-Proxyserver 401 und der Ursprungs-Server 301 können einen
Kommunikationsvorgang aufbauen, 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).The cache proxy server 401 and the origin server 301 can establish a communication process in which the cache proxy server 401 and the origin server 301 in a negotiation process 502 for two-way communication to facilitate smooth transmission of streaming media data packets. As in operation 501 can be shown, the cache proxy server 401 with the origin server 301 communicate and (eg by specifying the names of RTP extensions) communicate a set of RTP extensions associated with the streaming media data to the cache proxy server 401 to be sent. The one for the server 301 Requested set of extensions can be the same as the set of requests made by the client 302 to the cache proxy server 401 (in cases where the client specifies RTP extensions such as security extensions for its use).
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 angeforderten 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 nicht- unterstü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.The server 301 receives the request for RTP extensions from the cache proxy server 401 , The server 301 can then process its internal processes to determine if the server 301 supports the requested RTP extensions. The result of this determination may be that the server 301 supports some, but not all, of the requested RTP extensions, or that server 301 does not support any of the requested RTP extensions, or that the server 301 supports all requested RTP extensions. The server 301 can the cache proxy server 401 in operation 502 reply by calling the cache proxy server 401 about the server's supported RTP extensions 301 informed. The server 301 can make the choice to answer 502 by showing only the supported RTP extensions, or can respond by displaying both the supported and unsupported RTP extensions, or the server 301 can not answer at all, indicating no support for requested extensions. In one embodiment, the response may take the form of an echo or have other other forms. In an echo form of the invention, the server transmits the names of the requested RTP extensions and associated code for each named extension.
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.The cache proxy server 401 receives from the server 301 An answer indicating the supported RTP extensions or both the supported and unsupported RTP extensions. The cache proxy server 401 can check if a response has been sent for any RTP extensions it requested earlier. The cache proxy server 401 can not have received any, one, some, or all responses to the requested RTP extensions. The cache proxy server 401 can still rate to check if any of the server 301 unsupported RTP extensions are required for a streaming media data transfer operation. Required RTP extensions may be defined as RTP extensions required to perform a particular data transfer operation, such as thinning frames, etc. on the cache proxy server 401 continue. As shown in 5 refer to the operations 501 and 502 on setup and negotiation of an audio track while doing the operations 503 and 504 refer to a similar setup and negotiation for a video / image track.
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.In one embodiment, the cache proxy server 401 in each case several sets of RTP extensions from the server 301 Request. If the requested RTP extensions are required and from the server 301 can not be supported, the cache proxy server 401 make the decision to end the negotiation process. There may also be a case that some of the extensions are supported and some are not. In such a situation, if the unsupported enhancements to the data transfer process are not required, the cache proxy server may 401 make the decision to continue and receive the supported extensions and the associated streaming media data. In another embodiment, the cache proxy may be 402 does not receive a response for any of the requested RTP extensions. In such a case, the cache proxy 402 make the decision, the negotiation process with the server 301 to end.
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.If the cache proxy server 402 If the decision is made not to terminate the negotiation process and to request the supported RTP extensions and streaming media data, he may make a request to the server 301 send the streaming media data and the associated supported RTP extensions in operation 504 to send. In the example of 5 This request for the streaming media data and associated RTP extensions takes place when the cache proxy server 401 sends a "PLAY" command in the RTSP protocol.
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
Header-Format an den Cache-Proxyserver 401 sendet. Dieser
Header kann eine, zwei oder drei ähnliche oder bezugslose RTP-Erweiterungen
enthalten.The server 301 answers in operation 505 to the "PLAY" command by sending the streaming media data and the requested and supported RTP extensions associated with the streaming media data in an extended header format to the cache proxy server 401 sends. This header can contain one, two, or three similar or non-referenced RTP extensions.
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).Upon receiving the streaming media data and receiving RTP extensions from the server 301 can be the cache proxy 401 the streaming media data and the RTP extensions in a storage device 601 (for example, one from the cache proxy server 401 controlled storage device such as a local hard drive of the server 401 ) and the transfer process with the server 301 break up. The cache proxy 401 can also re-initiate the negotiation process and repeat again and again if there is another request from streaming media from the client 302 received. This requirement may be similar or completely different from previous requirements. Some of the extensions provided by the cache proxy server 401 may be a transmission time sub-extension designated by the symbol "trti", or a frame type sub-extension designated by the symbol "ftry", or a packet position sub-extension denoted by the symbol "papo". You can also request other extensions (for example, an extension provided by the client 302 or the server 401 is used to provide secure or encrypted or verified communication between the client 302 and the server 401 to maintain).
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.For example, a cache proxy server 401 ask in a cycle of its operation for three separate RTP sub-extensions, one of which may be a frame-type sub-extension designated by the "frty" symbol (the one for thinning frames by the cache proxy server 401 as will be described below), the next one may be the transmission type sub-extension designated by "trti" (that of the cache proxy server 401 as described below), and the last may be the parcel position sub-extension designated by "papo" (which may be used to retrieve lost or missing packets). To illustrate this example, it is also assumed that the sub-extension "frty" is required for the streaming media data transfer operation. "Frty" can out various reasons are called a required sub-extension. One of the reasons may be that the client 302 can not receive or process data at a high data rate (which requires thinning out of frames), and the frty sub-extension supports the data transfer process between a cache proxy server and the client 302 by allowing the cache proxy server to thin out frames, and may therefore be "required".
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.The cache proxy 402 can receive the request and with the server 301 communicate by making a single request to the server 301 sends asking for both sub-extensions. To illustrate this example, assume that the server 301 only one of the two RTP extensions can support. The server 301 then a response indicating which sub-extension is supported can be returned to the cache proxy server.
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 fortführen. 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.If the supported sub-extension is just "trti" or "papo", or both, but not "frty", the cache proxy stops 402 the negotiation process between the cache proxy 402 and the server 301 , The reason for this is that "frty" was an extension required for the data transfer process, and because it came from the server 301 is not supported, the cache proxy 402 do not continue. However, if the supported sub-extension is just "frty", or frty and papo, or frty and trti, or frty, papo and trti, the cache proxy server can 401 Continue the transfer process. The cache proxy server 401 can make the choice here, not finish the process because the required sub extension frty in the response than from the server 301 supported exists.
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. 6 FIG. 12 shows an example of a method of transmitting packet transmission time data that may be used with various embodiments of the present invention. The server 301 is with the cache proxy server 401 via a standard communication device such as a fiber optic wire connection, radio frequency communication, cable wire or the like. It will be understood by those of ordinary skill in the art that the type of communication device for the data transfer operation according to the present invention is not essential and that these communication devices are interchangeable. It should be clear that communication devices depend on having communication in both directions, ie from the server 301 to the cache proxy 402 or from the cache proxy 402 to the server 301 , enable.
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.The communication between a cache proxy server 401 and the origin server 301 may be a direct communication relationship, or other devices may be present on the Internet, such as routers, that act as intermediary links to support streaming media data transfer. Typically there is a cache proxy server 401 closer to the client 302 as the origin server 301 , This large proximity may be within a company or on a given local area network (LAN) or in a same geographic area, while the cache proxy server and the original system server 301 further apart.
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 Übertragungszeit)
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.).The cache proxy server 401 can be a storage device 601 for storing the streaming media data 603 and / or the associated RTP extensions 602 exhibit. The storage device 601 can be local to the cache proxy server 401 or from the cache proxy server 401 However, storage will be done by the cache proxy server 401 controlled. The cache proxy server 401 may have a connection set up by the server 301 received data for a period of time in the memory device 601 to save, and then be able to retrieve the stored data at a later date to send it to the client 302 to send. In the example of 6 become the streaming media data 603 and its associated RTP extension (in this case the transmission time) together on a storage device 601 saved. Groups of streaming media data (eg, a packet or a set of packets) are assigned a corresponding designation of transmission time so that each group has a transmission time indicating when each group should be transmitted. It should be noted that the streaming media data and the associated RTP extensions may be stored separately (but remain associated with each other - eg packet number, xxx to transmit at time ABC, packet number xxy to transmit at time ABD, etc.). ).
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.In the example of 6 will be the streaming media data from the server 401 receive, and the cache proxy server 401 receives the transmission time data from the server 301 and stores them in the storage device 601 , The transmission time data may be associated with each track of streaming media data. For example, in one case, the transmission time of 0 sec 602 corresponding streaming media data 603 be assigned. In operation, streaming media data 0 is sent to a client at transmission time 0 in this exemplary embodiment.
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. 7 shows an exemplary method of using the transmission time as RTP extents tion according to an embodiment of the present invention. In operation, this can be done in 7 proposed methodology the system architecture according to the proposal in one of the in 6 shown embodiments of the present invention use.
In
einem Beispiel für
das Verfahren von 7 empfängt ein Cache-Proxyserver 401 eine
Anforderung von Streaming-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 antworten, ohne mit dem Ursprungs-Server 301 zu
kommunizieren, und somit die Operationen 707 und 708 von 7 wegzulassen.In an example of the method of 7 receives a cache proxy server 401 a request for streaming media data from the client 302 and then requests an RTP extension indicating the transmission time information and requests the server 301 on, the transmission time sub-extension RTP data 701 and send the associated streaming media data. The operation 701 Figure 12 shows the request by the cache proxy server for streaming media data and transmission time resulting from this request. The server receives the request in the operation 702 as shown in 7 , There may also be a case where a cache proxy server 401 the requested streaming media data and the transmission time information assigned to it from the server 301 has already received and the streaming media data and the associated RTP extensions in a storage device 601 saved. Then the cache proxy server 401 start with, at the request of the client 302 to reply without using the origin server 301 to communicate, and thus the operations 707 and 708 from 7 omit.
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.To illustrate this example, assume that the source server 301 supports the transmission time information, the server responds 301 the cache proxy server by giving its support for the requested sub-extension in the operation 703 indicates. However, if the sub-extension transmission time is from the origin server 301 not supported, the origin server can 301 the cache proxy server 401 respond or do not respond to indicate its support for the requested sub-extension, as in the operation 709 is shown. In the case of an unsupported sub-extension, the cache proxy may 402 the negotiation process with the server 301 finish, as in the operation 710 is shown, and would typically be the client 302 inform that he is unable to provide the streaming media data. This may be the cache proxy server 401 first evaluate whether the missing transmission time information is required to complete its processes. If the determination indicates that the transmission time information is a required element in this particular case, the cache proxy server may decide whether to continue the transmission process or terminate it.
Der
Server 301 sendet in der Operation 704 die Übertragungszeit-RTP-Daten
in einem erweiterten Header-Format gemäß dem RTP-Protokoll an den
Cache-Proxyserver. Der Header kann aus den normalen Header-Feldern,
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.The server 301 sends in the operation 704 the transmission time RTP data in an extended header format according to the RTP protocol to the cache proxy server. The header may consist of the normal header fields, the sub-extension character name, and a sub-extension ID 704 consist. The transmission time data sub-extension character name may be a 4-character code called "trti". This code can uniquely identify and describe the contents of the sub-extension as transit-time data. The sub-extension ID may identify the sub-extension in the RTP packet.
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.A transmission time sub-extension may consist of a single 64-bit unsigned integer indicating the recommended transmission time of the RTP packet in milliseconds, as in the operation 704 is shown. The transmission time can be deducted from the beginning of a media presentation. For example, in a subcycle of operation, a session description protocol document for a Uniform Resource Locator (URL) may include a range of 0-729.45 seconds. The client 302 can make a PLAY request 706 according to the data of the type video, audio, text, graphics, and images, etc.
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 Übertra gungszeitdaten
lokal speichern, wie in 6 gezeigt ist. Der Cache-Proxyserver 401 kann
dann die Header-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.The cache proxy server 401 may receive the RTP data packet associated with the streaming media data with the transmission time sub-extension as in 6 shown in more detail. The cache proxy server 401 can then store the RTP transmission data locally, as in 6 is shown. The cache proxy server 401 can then use the header ID in the operation 705 take out and the associated streaming media data in the operation 707 with a remote transmission time individually to the client 302 send what it says to the client 302 allows the PLAY operation 708 continue. The knowledge and time-delayed local storage of the transit time on the cache proxy server has the advantage of being the cache proxy server 401 Now it may be possible to selectively re-send data to the client in different time periods 302 or to respond to a request from the client to send data in accordance with any timeslot.
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. 8th FIG. 12 shows an exemplary method for a stream thinning process by a cache proxy server according to one embodiment of the present invention. FIG. During operation, a client communicate 302 and a cache proxy server 301 with each other to support the sending and receiving of streaming media data and the traffic flow control at the client 302 to support. In a method according to 8th a client communicates 302 with the cache proxy server 401 and indicates that it is overloaded, or the cache proxy server 401 detects that the client is overloaded. As part of the This communication represents the cache proxy server 401 sure that the client 302 does not receive any amount of data that exceeds its data handling capacity. The cache proxy server further prevents that as a result of an overloaded client 302 at least selected frames are "dropped" or missing.
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.One 8th underlying principle is that an overloaded client 302 may notify the cache proxy that it has reached its capacity limit to receive RTP data (eg streaming media data). The client 302 may have been overloaded for several reasons, such as a cache proxy server sending RTP data very quickly and the client 302 Has difficulty receiving data at such a speed. The client 302 may inform the cache proxy server to stop sending streaming media data altogether or to send the data at a slower speed. The client 302 may also inform the cache proxy server to send only a selected order of frames and no lower order frames. The cache proxy server 401 uses the frame type data to determine which frames to send to the client 302 to be transferred; typically frames of higher priority are transmitted, while frames of lower priority are not transmitted.
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.A method of 8th begins with the operation 801 where a cache proxy server 402 with the origin server 301 communicate and from the server 301 Streaming media data and its associated frame type information can request. The frame type identifies different types of data (eg frames) in streaming media data and allows for "thinning out", which can be defined as reducing frames, sending frames at a slower speed, or not transmitting at all certain frames. It should be noted that thinning out is applicable to different types of data and that "frames" as such may be assumed to have different types of data. The server 301 can the request in the operation 802 received and in the operation 803 the cache proxy server 401 answer by indicating if the server 301 supports the streaming media data of the requested frame type. If the server 301 This supports the server's response 301 in the operation 803 Send the associated RTP frame type sub-extension in a format that is in block 804 described, along with an identification code, which in the operation 801 by name requested frame type extension.
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-Daten-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.If the server 301 The cache proxy server in the operation may not support the frame-type sub-extension 807 and 808 the communication with the server 301 break up. The server 301 can indicate that it does not support the requested frame-type streaming media data by either responding or not responding to the Caching Proxy Server at all 401 which would also indicate the absence of support for the requested RTP extension for the streaming media data. If the server 301 however, the frame-type sub-extension supports the cache proxy 402 the server 301 inform you to send the streaming media associated with the frame type information. In one embodiment, the server may 301 the supported streaming media data sub-extensions without any further requests from the cache proxy server 401 send. In another embodiment, the server 301 to another request from the cache proxy server 401 wait to send the supported streaming media data sub-extensions.
Der
Server 301 kann daraufhin die RTP-Untererweiterung in einem
erweiterten Header-Format 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.The server 301 can then send the RTP sub-extension in an extended header format. The frame-type sub-extension can consist of a single unsigned 16-bit integer value with some well-known values representing different frame types. The well-known values may be "1" for a key frame, "2" for a p-frame, or "3" for a b-frame, with the key frame of the highest order, and most importantly, the b-frame of the lowest order and least important, and the b-frame may be located in its importance between key-frame and b-frame. There may also be other frames that can be added to this format.
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.The cache proxy server 401 may then retrieve the streaming media data and its associated frame type sub-extension after it has been received by the source server 301 in his storage device 601 to save. This is in the operation 805 from 8th shown. The cache proxy server 401 can then be in a negotiation process with the client 302 in which he has the ability of the client to handle streaming media traffic 809 valued at that time. Based on the outcome of the negotiation process 809 may be the cache proxy server 401 Thin frames (and send only selected, previously specified frames) and selected frames 806 associated streaming media data to the client 302 send.
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.For example, in one operating cycle, a client 302 Inform the cache proxy server that it is overloaded. The client 302 can the cache proxy server 401 inform you to stop sending frames altogether, or to decrease the bit rate if the transmission lags. When reducing the bitrate and slowing down the Cache Proxy Server 401 sending lowest order frames of the streaming media data, the b-frames, to the client 302 abort. The cache proxy server 401 and the client 302 can continue to communicate to evaluate whether the client 302 still overloaded. In one embodiment, the cache proxy server when the client 302 after thinning out the b-frames is able to cope with the load, the client 302 Send key frames and p-frames. If the client 302 However, the cache proxy server may still be overloaded 401 the traffic to the client 302 further reduce and stop sending p-frames. The cache proxy server 401 can continue the data handling ability of the client 302 evaluate and determine if further thinning out of frames is needed to relieve the burden on the client 302 to reduce. In another embodiment, the client may 302 the cache proxy server 401 Immediately specify which frames to send and which frames to not send until a subsequent request to the cache proxy server 401 is sent to change the transmission conditions.
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.After a client 302 can recover its ability to cache frames, the cache proxy server 401 start again, frames of low order to the client 302 to send. He can resend all the frames at high speed or the frames as required by the client 302 send. If the client 302 again, the cache proxy server may become overloaded 401 repeat the thinning process until the client 302 is again capable of caching data. 10 shows an example of how a cache proxy server 401 Streaming media data and its associated frame type (FT) RTP extension data from an originating server 301 receives and streaming media data and associated frame type extension data on a storage device (eg, a cache proxy local hard drive 401 ) and then uses the frame-type data to selectively frame the streaming media data sent to a client 302 be thinned out.
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-Headers
modifizieren zu können,
indem es möglich
ist, den Header mit Untererweiterungen zu erweitern, und auch das
Header-Format variabel machen zu können. Eine Erweiterung des
Header 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 Header angehängt werden,
da es möglich
ist, das Header-Feld zu erweitern. Es sollte auch klar sein, dass
die Möglichkeit
des Variierens des erweiterten Header 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 Header die Fähigkeit
haben, verschiedene Typen von Informationen zu ändern und je nach Bedarf dem
Cache-Proxyserver 401 zur Verfügung zu stellen.The communication between a cache proxy server 401 and a source server 301 or between a cache proxy server 401 and a client 302 is done using real-time transfer protocol (RTP) and real-time streaming protocol (RTSP) to send / receive streaming media data. An origin server 301 sends streaming media data packets in a streaming media format to a cache proxy server using RTP 401 when a transmission of streaming media data is taking place. One of the embodiments of the present invention is to be able to modify the currently existing RTP headers by making it possible to extend the header with sub-extensions, and also to be able to make the header format variable. An extension of the header is useful because a cache proxy server 401 Together with an RTP package, it may need more information to help it out to the client 302 to provide a good quality streaming media data package and a smooth delivery. The additional information that may be needed can be made available by appending it to the existing header, as it is possible to extend the header field. It should also be clear that the possibility of varying the advanced header is important because of the additional information provided by the cache proxy 402 needed to be different each time. To accommodate for this variation, the extended header may have the ability to change various types of information and, as appropriate, the cache proxy server 401 to provide.
Gemäß einer
Ausführungsform
der Erfindung besteht im Betrieb ein erweiterter Header aus normalen
Header-Feldern. Der Durchschnittsfachmann ist mit den verschiedenen
Header-Feldern vertraut, die normalerweise im Betrieb verwendet
werden. Unmittelbar auf die normalen Header-Felder folgen Header-Erweiterungsfelder.
Das Erweiterungsfeld besteht aus mehreren Untererweiterungen. Es können mehrere
Header-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.In accordance with an embodiment of the invention, in operation, an extended header consists of normal header fields. One of ordinary skill in the art will be familiar with the various header fields normally used in the field. Immediately following the normal header fields are header extension fields. The extension field consists of several sub-extensions. There may be multiple header subextensions that are unrelated and depending on the request of the cache proxy server 401 can be different. The sub-extensions can have an extension type "se". The length of the RTP extension can be the total length of all sub-extensions and can be defined in 32-bit words so that they are fully compatible with the RTP protocol.
Das
Untererweiterungsformat "se" kann derart sein,
dass eine Untererweiterungs-ID unmittelbar auf das normale RTP-Header-Feld
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.The sub-extension format "se" may be such that a sub-extension ID immediately follows the normal RTP header field. The ID can identify the sub-extension within the RTP packet. This ID can be a one-octet ID taken from the server 301 for each individually named RTP sub-extension. Each sub-extension can also have a unique name defined by a 4-character name code. This name code uniquely identifies and describes the data type in each sub-extension. For example, the 4-character name code for a transmission time sub-extension may be "trti", the frame-type sub-extension "frty", and the packet-position sub-extension may be "papo". This name code is the one (from the server 301 generated) one-octet ID, so that the cache proxy server 401 from the octet ID can identify the appropriate RTP extension data when receiving streaming media data.
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 Header-Format
ohne die Notwendigkeit größerer Modifikationen
anwenden.at
an embodiment
The present invention may use the unique name of the streaming media data
for frame type information
assigned to be "frty". The unique one
Name "frty" can also be an unsigned one
have integer assigned to each different frame type.
In one embodiment
the unsigned integer may be "1" for one
Key frame, "2" for
a p-frame, and "3" for one
b-frame. A user can in the future
also any additional
Frames depending on additional
Add need and technological progress and this header format
without the need for major modifications
apply.
Bei
einer anderen Ausführungsform
der vorliegenden Erfindung kann der eindeutige Name, der Streaming-Media-Daten
für Übertragungszeittyp-Informationen
zugeordnet ist, "trti" sein.at
another embodiment
The present invention may use the unique name of the streaming media data
for transmission time type information
is assigned to be "trti".
Bei
einer anderen Ausführungsform
der vorliegenden Erfindung kann der eindeutige Name, der Streaming-Media-Daten
für Paketpositionstyp-Informationen
zugeordnet ist, "papo" sein.at
another embodiment
The present invention may use the unique name of the streaming media data
for package item type information
assigned to be "papo".
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. 9 shows an exemplary method of several aspects of the present invention. In a section 901 requests a cache proxy server 401 Streaming media data from a source server 301 and, in addition, requests one or more RTP extensions. This request is made using the RTSP protocol. In the operation 903 Typically, the server (eg, if the response is an echo) returns a response indicating its support for the requested RTP extensions back to the cache proxy server 401 , The server 301 transfers to the cache proxy server 401 also an identification such as a numeric code corresponding to each name of the requested RTP extensions. Typically, the cache proxy server uses 401 the number code later when identifying received extended RTP data. The numeric code allows the cache proxy server 401 To identify the different types of RTP extension data in the streaming media that it receives, as the server 301 may not use the name to denote the RTP extension type. In the operation 905 the cache proxy server receives 401 the answer of the server 301 , and then the CP server determines 401 in the operation 907 whether the server 301 responded to all requested RTP extensions.
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
Ursprngs-Server 301 beendet werden soll oder nicht. Wie
in den Operationen 915 oder 917 gezeigt ist, kann
der Cache-Proxyserver 401 die Operationen/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.If the server 301 has not responded to all requested RTP extensions, processing continues to the operation 909 followed by surgery 911 which determines whether any of the missing RTP extensions are for processing by the cache proxy server 401 are of crucial importance. If they are not of critical importance, processing continues to the operation 921 , If they are critical, the cache proxy server determines 401 in the operation 913 whether the operation / communication with the origin server 301 should be ended or not. As in the operations 915 or 917 can be shown, the cache proxy server 401 the operations / communications with the server 301 for that particular streaming media data that has been requested, or they are about to receive the streaming media and any supported extensions that can be made available.
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
reagiert 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 Übertra gungszeiten verwenden,
um zu bestimmen, wann verschiedene Paketen in den Streaming-Media-Daten
an den Client 302 übertragen
werden sollen.In the operation 921 asks the CP server 401 the origin server 301 to send the requested streaming media data and associated RTP extensions. In one embodiment, the CP server transmits 401 a "PLAY" request using RTSP, representing the server 301 causes in the operation 923 by transmitting the streaming media data and associated RTP extensions. In the operation 925 saves the CP server 401 from the server 301 received streaming media data and also stores the associated RTP extension data. In the operation 927 can the CP server 401 remove certain RTP extension data, such as the transmission time or frame type data, from the streaming media file. This is done to avoid having the transmission time or frame type information to the client 302 be sent, which requests streaming media data. The RTP extension data removed from the streaming media data is stored separately but associated with the streaming media data. For example, transmission times for different packets are stored separately from the packets, but those in the server 301 received data between the transmission time and the corresponding packets is maintained even if the transmission times are stored separately, so that the cache proxy server 401 determine the appropriate transmission time for each of the packets in the streaming media data. In the operation 929 rates the cache proxy server 401 the request of streaming media data by a client 302 and reacts accordingly. It should be noted that a client 302 Negotiations on streaming media data using the RTSP protocol, and that the CP server 401 with the streaming media data responds by sending the data to the client 302 transfers. In addition, the client 302 request the thinning of frames. Furthermore, the cache proxy server 401 Use the transmission times to determine when different packets in the streaming media data to the client 302 to be transferred.
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. 11 FIG. 12 illustrates one type of exemplary machine-readable media (eg, RAM or hard disk, or a combination thereof) for storing executable computer program instructions for a cache proxy server 401 which can be used according to the present invention. The cache proxy server 401 typically has its own operating system (OS) software 1101 , This software 1101 may be the Macintosh OS, or Windows NT or Unix, or other well-known operating systems.
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.The control software 1102 is for transmitting or receiving streaming media data using, for example, the RTP and RTSP protocols. The software 1102 is normally able to retrieve or send various types of streaming media data packets and commands to store the received media in a memory device 601 to judge. Thus, the software performs 1102 the negotiation process with a source server 301 and receives streaming media data and its associated RTP extensions, and causes the streaming media data and its associated RTP extensions to be on one of the cache proxy server 401 controlled storage device are stored. 11 shows how to save two streaming media data files 1103 and 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.The streaming media data file 1103 can streaming media data 1 in streaming media format 1105 , a transmission time assigned to the streaming media 1 ( 1106 ), and a frame type assigned to the streaming media 1 ( 1107 ) contain. In one embodiment, the operating system 1101 and the control software 1102 have the ability to separate the streaming media data in packet 1 from other packets and store them separately in a storage device 601 and extract the RTP extensions (eg Transmit Time data or Frame Type data) from the stored streaming media packets and store them separately so that these packets do not contain the RTP extensions.
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.The streaming media data file of 1104 can streaming media data 2 in streaming media format 1108 , a transmission time associated with the streaming media data 2 ( 1109 ), and a frame type associated with the streaming media data 2 ( 1110 ) contain.
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.The streaming media data 1105 and 1108 usually do not have the same original format, because the media data on the origin server 301 were. The streaming media data 1105 and 1108 however, they can be a complete "unadvertised" copy of the original media data because the extension "papo" is from the cache proxy server 401 Can be used to streaming media data 1105 and 1108 to search for any missing packets and (re-) request these packets from the source server.
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. 12 FIG. 12 shows one type of exemplary machine-readable media (eg, RAM or hard disk, or a combination thereof) for storing executable computer program instructions for an origin server 301 which can be used according to the present invention. The server 301 typically has its own operating system 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.The control software 1202 is for transmitting streaming media data to a cache proxy server 401 or to a client 302 using the RTP and RTSP protocols and the RTP extensions of the invention. The software also receives 1202 Requirements of streaming media from a client 302 or a cache proxy server 401 and negotiates with a cache proxy server 401 on various types of streaming media data and associated RTP extensions, and responds to various requests by cache proxy servers 401 or 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.The software 1204 converts original media data 1203 which are typically not in a packet format, into a streaming media data format (eg, packet format) for transmission to the cache proxy server 401 or the client 302 , After conversion, the converted streaming media data is a representation of the original media data 1203 with a format other than the format of the original media data 1203 ,
Die
Software 1206 erzeugt RTP-Erweiterungs-Headers, 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 Ver bindung 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.The software 1206 creates RTP extension headers associated with different types of streaming media data. The system can have different ID names and codes 1205 Assign different types of streaming media data assigned to different RTP extensions before sending them to a cache proxy 401 or a client 301 be sent. The software 1206 in connection with the software 1202 conducts the negotiation process with a cache proxy server 401 by (or in some cases where the client requests an RTP extension, such as a backup or encryption or verification extension with the client) to transfer RTP extension data for associated streaming media data, and also performs the operation of transferring streaming media data with its associated RTP extension.
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. 13 Figure 13 shows one type of example machine-readable media (eg, RAM or hard disk, or a combination thereof) for storing executable computer program instructions for a client server 302 which can be used according to the present invention. The client server 302 typically has its own operating system 1301 such as a Macintosh OS, or Windows NT, or Unix, or other well-known operating systems. The medium of the client can also be web browser software 1303 such as Netscape's Navigator or Microsoft's Internet Explorer.
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).The streaming media data player software 1302 is intended for receiving and playing streaming media data that is transmitted to the client using the RTP protocol. The streaming media data player software 1302 may be QuickTime software from Apple Computer or Real Player from Real Networks. The streaming media data player software 1302 is typically capable of querying for different types of streaming media data to a cache proxy server 401 or a server 301 to send and receive a presentation of streaming media data (for example, to display images and to generate sound).
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).In yet another embodiment, the streaming media data player software 1302 to be able to work with a cache proxy server 401 to communicate and negotiate in order to regulate an incoming traffic and better manage its load (for example, the software 1302 a CP server 401 prompt to perform a thinning of frames).