DE60112759T2 - Vorrichtungen und verfahren zur datenübertragung - Google Patents

Vorrichtungen und verfahren zur datenübertragung Download PDF

Info

Publication number
DE60112759T2
DE60112759T2 DE60112759T DE60112759T DE60112759T2 DE 60112759 T2 DE60112759 T2 DE 60112759T2 DE 60112759 T DE60112759 T DE 60112759T DE 60112759 T DE60112759 T DE 60112759T DE 60112759 T2 DE60112759 T2 DE 60112759T2
Authority
DE
Germany
Prior art keywords
streaming media
media data
server
data
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60112759T
Other languages
English (en)
Other versions
DE60112759D1 (de
Inventor
Denis Serenyi
Chris Lecroy
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Computer Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Apple Computer Inc filed Critical Apple Computer Inc
Publication of DE60112759D1 publication Critical patent/DE60112759D1/de
Application granted granted Critical
Publication of DE60112759T2 publication Critical patent/DE60112759T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23106Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/102Gateways
    • H04L65/1023Media gateways
    • H04L65/103Media gateways in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/10Architectures or entities
    • H04L65/102Gateways
    • H04L65/1033Signalling gateways
    • H04L65/104Signalling gateways in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • H04L65/1108Web based protocols, e.g. webRTC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/6437Real-time Transport Protocol [RTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6587Control parameters, e.g. trick play commands, viewpoint selection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching

Description

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

Claims (33)

  1. Verfahren zum Erzeugen einer Darstellung von Streaming-Media-Daten an einem Cache-Proxyserver (401), wobei das Verfahren umfasst: Übertragen einer Anforderung von Streaming-Media-Daten, die an den Cache-Proxyserver (401) geliefert werden sollen; Übertragen einer Anforderung von Daten, die mit den Streaming-Media-Daten im Zusammenhang stehen, wobei die Anforderung eine Kennung beinhaltet, welche einen von mehreren möglichen Datentypen darstellt, die mit den Streaming-Media-Daten im Zusammenhang stehen; Empfangen der Streaming-Media-Daten und Speichern der Streaming-Media-Daten auf einer Speichervorrichtung (601), die von dem Cache-Proxyserver (401) gesteuert werden kann, und Empfangen der Daten, die mit den Streaming-Media-Daten im Zusammenhang stehen.
  2. Verfahren nach Anspruch 1, welches ferner umfasst: Speichern der Daten, die mit den Streaming-Media-Daten im Zusammenhang stehen, in der Speichervorrichtung (601).
  3. Verfahren nach Anspruch 1, welches ferner umfasst: Empfangen einer Antwort, welche Unterstützung für die angeforderten Streaming-Media-Daten anzeigt, vom Server (301), Informieren des Servers (301), die unterstützten Daten, die mit den Streaming-Media-Daten im Zusammenhang stehen, zu senden; Empfangen einer Anforderung vom Client (302), Streaming-Media-Daten zu senden; und Senden der angeforderten Streaming-Media-Daten an den Client (302).
  4. Verfahren nach Anspruch 1, wobei die Anforderung der Streaming-Media-Daten eine Anforderung von einem oder mehreren Typen der Streaming-Media-Daten umfasst, und das Verfahren ferner umfasst: Empfangen einer Antwort auf jeden angeforderten Typ von Streaming-Media-Daten; und Entscheiden, ob der Verhandlungsvorgang im Zusammenhang mit Streaming-Media-Daten weitergeführt oder beendet werden soll.
  5. Verfahren nach Anspruch 1, welches ferner umfasst: Empfangen einer Nachricht von einem Client (302), wobei die Nachricht eine Notwendigkeit anzeigt, Streaming-Media-Daten, die an den Client (302) gesendet werden, auszudünnen; Bewerten der Priorität von Streaming-Media-Daten; und Senden nur von ausgewählten Streaming-Media-Daten.
  6. Verfahren nach Anspruch 1, wobei die Daten, die mit den Streaming-Media-Daten im Zusammenhang stehen, eine Übertragungszeit für die Streaming-Media-Daten beinhalten, und das Verfahren ferner umfasst: Empfangen der Streaming-Media-Daten und der entsprechenden Übertragungszeitinformationen vom Server (301); Speichern der empfangenen Informationen; und Übertragen der Streaming-Media-Daten an einen Client (302) an Zeitpunkten, die durch die Übertragungszeitinformationen angegeben sind.
  7. Verfahren zur Datenübertragung von einem Server (301)-Datenverarbeitungssystem, wobei das Verfahren umfasst: Empfangen einer Anforderung von Streaming-Media-Daten, wobei die Anforderung eine Anforderung von Daten beinhaltet, die mit den Streaming-Media-Daten im Zusammenhang stehen, und die Anforderung eine Kennung beinhaltet, die mehrere mögliche Typen von Daten, welche mit den Streaming-Media-Daten im Zusammenhang stehen, darstellt; Antworten auf die Anforderung mit einer Antwort, welche eine Fähigkeit des Servers (301) zum Unterstützen der Anforderung anzeigt; und Senden der angeforderten Daten, die mit den Streaming-Media-Daten im Zusammenhang stehen.
  8. Verfahren nach Anspruch 7, wobei das Senden ein Echtzeit-Transportprotokoll (Real-time Transport Protocol; RTP) verwendet.
  9. Verfahren nach Anspruch 7, wobei die Anforderung entweder von einem Cache-Proxyserver (401) oder einem Client (302) durchgeführt wird.
  10. Verfahren nach Anspruch 7, wobei der Server (301) nur mit einem Echo antwortet, wenn er die Anforderung unterstützt.
  11. Verfahren nach Anspruch 7, wobei die angeforderten Daten in einem erweiterbaren erweiterten Vorspann gesendet werden.
  12. Verfahren nach Anspruch 11, wobei der erweiterbare erweiterte Vorspann einen Erweiterungsnamen und eine Erweiterungsidentifikation (ID) beinhaltet, die jeder separaten RTP-Erweiterung zugeordnet sind.
  13. Verfahren nach Anspruch 7, wobei die Anforderung jeweils einen oder mehrere Übertragungsprotokolldatentypen betreffen kann.
  14. Verfahren nach Anspruch 7, wobei die Antwort durch den Server (301) jeweils eine Antwort für alle unterstützten Übertragungsprotokolldaten und keine Antwort für nicht-unterstützte Übertragungsprotokolldaten beinhaltet.
  15. Verfahren nach Anspruch 7, welches ferner umfasst: Empfangen einer Anforderung, die Übertragungsprotokolldaten nach dem Senden einer Antwort für unterstützte Daten zu senden, und nur die angeforderten und unterstützten Übertragungsprotokolldaten zu senden.
  16. Verfahren nach Anspruch 7, wobei die Anforderung von Streaming-Media-Daten eine Anforderung von einem oder mehreren Typen der Streaming-Media-Daten beinhaltet, und das Verfahren ferner umfasst: Bestimmen, ob angeforderte Typen von Streaming-Media-Daten von dem Server (301) unterstützt werden.
  17. Verfahren zum Ausdünnen von Frames durch einen Client (302), welches umfasst: Senden einer Ausdünnungsnachricht an einen Cache-Proxyserver (401), wobei die Nachricht anzeigt, dass keine Frames niederer Ordnung gesendet werden sollen; Empfangen von Frames, deren Ordnung höher als diejenige von Frames niederer Ordnung ist, zurück vom Cache-Proxyserver (401).
  18. Maschinenlesbares Medium, das ausführbare Anweisungen zur Verfügung stellt, die bei ihrer Ausführung durch eine Gruppe von Prozessoren veranlassen, dass die Gruppe von Prozessoren ein Verfahren ausführt, das eine Darstellung von Streaming-Media-Daten an einem Cache-Proxyserver (401) erzeugt, wobei das Verfahren umfasst: Übertragen einer Anforderung, dass Streaming-Media-Daten an den Cache-Proxyserver (401) geliefert werden sollen, an einen Server (301); Übertragen einer Anforderung von Daten, die mit den Streaming-Media-Daten im Zusammenhang stehen, wobei die Anforderung eine Kennung beinhaltet, die einen von mehreren möglichen Typen von Daten, die mit den Streaming-Media-Daten im Zusammenhang stehen, darstellt; Empfangen der Streaming-Media-Daten und Speichern der Streaming-Media-Daten auf einer Speichervorrichtung (601), die von dem Cache-Proxyserver (401) gesteuert werden kann; und Empfangen der Daten, die mit den Streaming-Media-Daten im Zusammenhang stehen.
  19. Maschinenlesbares Medium nach Anspruch 18, wobei das Verfahren ferner umfasst: Empfangen einer Antwort, welche Unterstützung für die angeforderten Streaming-Media-Daten anzeigt, vom Server (301); Informieren des Servers (301), die unterstützten Daten, die mit den Streaming-Media-Daten im Zusammenhang stehen, zu senden; Empfangen der unterstützten Streaming-Media-Daten vom Server (301); Empfangen einer Anforderung, Streaming-Media-Daten zu senden, von einem Client (302); und Senden der angeforderten Streaming-Media-Daten an den Client (302).
  20. Maschinenlesbares Medium nach Anspruch 18, wobei die Anforderung der Streaming-Media-Daten eine Anforderung von einem oder mehreren Typen der Streaming-Media-Daten beinhaltet, und das Verfahren ferner umfasst: Empfangen einer Antwort auf jeden angeforderten Typ von Streaming-Media-Daten; und Entscheiden, ob der Verhandlungsvorgang im Zusammenhang mit Streaming-Media-Daten weitergeführt oder beendet werden soll.
  21. Maschinenlesbares Medium nach Anspruch 18, wobei das Verfahren ferner umfasst: Empfangen einer Nachricht, Frames in einer Übertragung von Streaming-Media-Daten vom Cache-Proxyserver (401) auszudünnen, von einem Client (302); Bewerten der Priorität von Frames; und Senden nur der ausgewählten Frames.
  22. Maschinenlesbares Medium nach Anspruch 18, wobei die Daten, die mit den Streaming-Media-Daten im Zusammenhang stehen, eine Übertragungszeit für die Streaming-Media-Daten beinhalten, und das Verfahren ferner umfasst: Empfangen der Streaming-Media-Daten in Entsprechung zu Übertragungszeitinformationen vom Server (301); Speichern der empfangenen Informationen; und Übertragen der Streaming-Media-Daten an Zeitpunkten, die von der Übertragungszeit angegeben werden, an einen Client (302).
  23. Maschinenlesbares Medium, welches ausführbare Anweisungen zur Verfügung stellt, die bei ihrer Ausführung durch eine Gruppe von Prozessoren die Gruppe von Prozessoren veranlassen, ein Verfahren zur Übertragung von Daten von einem Server (301)-Datenverarbeitungssystem durchzuführen, wobeidas Verfahren umfasst: Empfangen einer Anforderung von Streaming-Media-Daten, wobei die Anforderung eine Anforderung von Daten beinhaltet, welche mit den Streaming-Media-Daten im Zusammenhang stehen, und die Anforderung eine Kennung beinhaltet, die einen von mehreren möglichen Typen von Daten darstellt, die mit den Streaming-Media-Daten im Zusammenhang stehen; Antworten auf die Anforderung mit einer Antwort, die eine Fähigkeit des Servers (301) zum Unterstützen der Anforderung anzeigt; und Senden der angeforderten Daten, die mit den Streaming-Media-Daten im Zusammenhang stehen.
  24. Maschinenlesbares Medium nach Anspruch 23, wobei die Anforderung der Streaming-Media-Daten eine Anforderung von einem oder mehreren Typen der Streaming-Media-Daten beinhaltet, und das Verfahren ferner umfasst: Bestimmen, ob angeforderte Typen von Streaming-Media-Daten von dem Server (301) unterstützt werden.
  25. Maschinenlesbares Medium, welches ausführbare Anweisungen zur Verfügung stellt, die bei ihrer Ausführung durch eine Gruppe von Prozessoren die Prozessoren veranlassen, ein Verfahren zum Ausdünnen von Frames durchzuführen, wobei das Verfahren umfasst: Senden einer Ausdünnungsnachricht, die anzeigt, dass keine Frames niederer Ordnung gesendet werden sollen, an einen Cache-Proxyserver (401); und Empfangen von Frames, deren Ordnung höher als diejenige von Frames niederer Ordnung ist, zurück vom Cache-Proxyserver (401).
  26. Cache-Proxyserver (401), welcher aufweist: Mittel zum Übertragen einer Anforderung, dass Streaming-Media-Daten an den Cache-Proxyserver (401) geliefert werden sollen, an einen Server (301), wobei die Anforderung beinhaltet: eine Anforderung von Daten, die mit den Streaming-Media-Daten im Zusammenhang stehen, wobei die Anforderung beinhaltet: eine Kennung, die einen von mehreren möglichen Typen von Daten, die mit den Streaming-Media-Daten im Zusammenhang stehen, darstellt; Mittel zum Empfangen der Streaming-Media-Daten und Speichern der Streaming-Media-Daten auf einer Speichervorrichtung (601), die von dem Cache-Proxyserver (401) gesteuert werden kann; und Mittel zum Empfangen der Daten, die mit den Streaming-Media-Daten im Zusammenhang stehen.
  27. Cache-Proxyserver (401) nach Anspruch 26, welcher ferner aufweist: Mittel zum Empfangen einer Antwort, welche Unterstützung für die angeforderten Streaming-Media-Daten anzeigt, vom Server (301); Mittel zum Informieren des Servers (301), die unterstützten Daten, die mit den Streaming-Media-Daten im Zusammenhang stehen, zu senden; Mittel zum Empfangen der Streaming-Media-Daten vom Server (301); Mittel zum Empfangen einer Anforderung, Streaming-Media-Daten zu senden, vom Client (302); und Mittel zum Senden der angeforderten Streaming-Media-Daten an den Client (302).
  28. Cache-Proxyserver (401) nach Anspruch 26, wobei die Anforderung von Streaming-Media-Daten eine Anforderung von einem oder mehreren Typen der Streaming-Media-Daten beinhaltet, und der Cache-Proxyserver (401) ferner aufweist: Mittel zum Empfangen einer Antwort auf jeden angeforderten Typ von Streaming-Media-Daten; und Mittel zum Entscheiden, ob der Verhandlungsvorgang im Zusammenhang mit Streaming-Media-Daten weitergeführt oder beendet werden soll.
  29. Cache-Proxyserver (401) nach Anspruch 26, welcher ferner aufweist: Mittel zum Empfangen einer Nachricht, Frames in einer Übertragung von Streaming-Media-Daten vom Cache-Proxyserver (401) auszudünnen, von einem Client; Mittel zum Bewerten der Priorität von Frames; und Mittel zum Senden nur der ausgewählten Frames.
  30. Cache-Proxyserver (401) nach Anspruch 26, wobei die Daten, die mit den Streaming-Media-Daten im Zusammenhang stehen, eine Übertragungszeit für die Streaming-Media-Daten beinhalten, und der Cache-Proxyserver (401) ferner aufweist: Mittel zum Empfangen der Streaming-Media-Daten und entsprechender Übertragungszeitinformationen vom Server; Mittel zum Speichern der empfangenen Informationen; und Mittel zum Übertragen der Streaming-Media-Daten an Zeitpunkten, die von der Übertragungszeit angegeben werden, an einen Client (302).
  31. Server (301)-Datenverarbeitungssystem, welches aufweist: Mittel zum Empfangen einer Anforderung von Streaming-Media-Daten, wobei die Anforderung beinhaltet: eine Anforderung von Daten, die mit den Streaming-Media-Daten im Zusammenhang stehen, wobei die Anforderung eine Kennung beinhaltet, die einen von mehreren möglichen Typen von Daten, welche mit den Streaming-Media-Daten im Zusammenhang stehen, darstellt; Mittel zum Antworten auf die Anforderung mit einer Antwort, die eine Fähigkeit des Servers (301) zum Unterstützen der Anforderung anzeigt; und Mittel zum Senden der angeforderten Daten, die mit den Streaming-Media-Daten im Zusammenhang stehen.
  32. System nach Anspruch 31, wobei die Anforderung der Streaming-Media-Daten eine Anforderung von einem oder mehreren Typen der Streaming-Media-Daten beinhaltet, und das System ferner aufweist: Mittel zum Bestimmen, ob angeforderte Typen von Streaming-Media-Daten vom Server (301) unterstützt werden.
  33. Client (302)-Datenverarbeitungssystem, welches aufweist: Mittel zum Senden einer Ausdünnungsnachricht an einen Cache-Proxyserver (401), wobei die Nachricht anzeigt, dass keine Frames niederer Ordnung gesendet werden sollen; und Mittel zum Empfangen von Frames, deren Ordnung höher als diejenige von Frames niederer Ordnung ist, zurück vom Cache-Proxyserver (401).
DE60112759T 2000-06-22 2001-06-21 Vorrichtungen und verfahren zur datenübertragung Expired - Lifetime DE60112759T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/603,108 US7191242B1 (en) 2000-06-22 2000-06-22 Methods and apparatuses for transferring data
US603108 2000-06-22
PCT/US2001/020044 WO2001099374A2 (en) 2000-06-22 2001-06-21 Methods and apparatuses for transferring data

Publications (2)

Publication Number Publication Date
DE60112759D1 DE60112759D1 (de) 2005-09-22
DE60112759T2 true DE60112759T2 (de) 2006-06-01

Family

ID=24414129

Family Applications (3)

Application Number Title Priority Date Filing Date
DE60119589T Expired - Lifetime DE60119589T2 (de) 2000-06-22 2001-06-21 Vorrichtungen und Verfahren zur Datenübertragung
DE60136302T Expired - Lifetime DE60136302D1 (de) 2000-06-22 2001-06-21 Vorrichtungen und Verfahren zur Datenübertragung
DE60112759T Expired - Lifetime DE60112759T2 (de) 2000-06-22 2001-06-21 Vorrichtungen und verfahren zur datenübertragung

Family Applications Before (2)

Application Number Title Priority Date Filing Date
DE60119589T Expired - Lifetime DE60119589T2 (de) 2000-06-22 2001-06-21 Vorrichtungen und Verfahren zur Datenübertragung
DE60136302T Expired - Lifetime DE60136302D1 (de) 2000-06-22 2001-06-21 Vorrichtungen und Verfahren zur Datenübertragung

Country Status (5)

Country Link
US (9) US7191242B1 (de)
EP (4) EP1916820B1 (de)
DE (3) DE60119589T2 (de)
HK (3) HK1063903A1 (de)
WO (1) WO2001099374A2 (de)

Families Citing this family (107)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8079086B1 (en) 1997-11-06 2011-12-13 Finjan, Inc. Malicious mobile code runtime monitoring system and methods
US7058822B2 (en) 2000-03-30 2006-06-06 Finjan Software, Ltd. Malicious mobile code runtime monitoring system and methods
US9219755B2 (en) 1996-11-08 2015-12-22 Finjan, Inc. Malicious mobile code runtime monitoring system and methods
US7468934B1 (en) 1999-07-12 2008-12-23 Ez4Media, Inc. Clock with link to the internet
US20020013852A1 (en) 2000-03-03 2002-01-31 Craig Janik System for providing content, management, and interactivity for thin client devices
US6947440B2 (en) 2000-02-15 2005-09-20 Gilat Satellite Networks, Ltd. System and method for internet page acceleration including multicast transmissions
US6757796B1 (en) * 2000-05-15 2004-06-29 Lucent Technologies Inc. Method and system for caching streaming live broadcasts transmitted over a network
US7191242B1 (en) * 2000-06-22 2007-03-13 Apple, Inc. Methods and apparatuses for transferring data
US7142934B2 (en) * 2000-09-01 2006-11-28 Universal Electronics Inc. Audio converter device and method for using the same
US20060031550A1 (en) * 2000-09-05 2006-02-09 Universal Electronics Inc. Webpad adapted to communicate using wide area and local area communication channels
US20020065927A1 (en) 2000-09-05 2002-05-30 Janik Craig M. Webpad and method for using the same
US20020065902A1 (en) * 2000-09-05 2002-05-30 Janik Craig M. Webpad and method for using the same
US7200357B2 (en) * 2000-10-20 2007-04-03 Universal Electronics Inc. Automotive storage and playback device and method for using the same
US20020104011A1 (en) * 2001-02-01 2002-08-01 Bechtel Bwtx Idaho, Llc Systems and methods for employing opportunistic data transfer to create a dynamically mobile data communication system
US7433942B2 (en) * 2001-02-27 2008-10-07 Intel Corporation Network management
SE0101295D0 (sv) 2001-04-10 2001-04-10 Ericsson Telefon Ab L M A method and network for delivering streaming data
US20020156841A1 (en) * 2001-04-13 2002-10-24 Bjorn Landfeldt Accessing distributed proxy configurations
US7945688B1 (en) 2001-06-12 2011-05-17 Netapp, Inc. Methods and apparatus for reducing streaming media data traffic bursts
US7664342B2 (en) * 2001-07-23 2010-02-16 Sony Corporation Information processing system, information processing apparatus, and method
US8255989B2 (en) 2001-09-26 2012-08-28 General Instrument Corporation Access control and key management system for streaming media
US7237108B2 (en) 2001-09-26 2007-06-26 General Instrument Corporation Encryption of streaming control protocols and their headers
JP3888642B2 (ja) * 2001-10-05 2007-03-07 アルパイン株式会社 マルチメディア情報提供方法及び装置
US7243366B2 (en) 2001-11-15 2007-07-10 General Instrument Corporation Key management protocol and authentication system for secure internet protocol rights management architecture
US8150235B2 (en) * 2002-02-08 2012-04-03 Intel Corporation Method of home media server control
US7349948B2 (en) * 2002-02-28 2008-03-25 International Business Machines Corporation Method, network and network proxy for transmitting information
BR0201115A (pt) * 2002-04-02 2005-02-22 Coppe Ufrj Memória cooperativa distribuìda colapsada para sistemas de mìdia-sob-demanda interativa e escalável
US9137324B2 (en) * 2002-04-10 2015-09-15 International Business Machines Corporation Capacity on-demand in distributed computing environments
US7356687B2 (en) 2002-05-21 2008-04-08 General Instrument Corporation Association of security parameters for a collection of related streaming protocols
CN1293738C (zh) * 2002-06-28 2007-01-03 华为技术有限公司 提高远程用户拨号认证协议数据处理能力的方法
SE0202451D0 (sv) * 2002-08-15 2002-08-15 Ericsson Telefon Ab L M Flexible Sim-Based DRM agent and architecture
US8364951B2 (en) 2002-12-30 2013-01-29 General Instrument Corporation System for digital rights management using distributed provisioning and authentication
US7251328B2 (en) 2003-01-14 2007-07-31 General Instrument Corporation System for secure decryption of streaming media using selective decryption of header information and decryption of reassembled content
US7991905B1 (en) 2003-02-12 2011-08-02 Netapp, Inc. Adaptively selecting timeouts for streaming media
US7768234B2 (en) * 2004-02-28 2010-08-03 Janik Craig M System and method for automatically synchronizing and acquiring content for battery powered devices
US9274576B2 (en) * 2003-03-17 2016-03-01 Callahan Cellular L.L.C. System and method for activation of portable and mobile media player devices for wireless LAN services
CN100417155C (zh) * 2003-05-08 2008-09-03 上海交通大学 远程教学多模式实时多媒体交互系统
AU2003284867A1 (en) * 2003-08-18 2005-03-07 Alcatel Method of voip communication with additional data transmission
JP2005110024A (ja) * 2003-09-30 2005-04-21 Toshiba Corp データ送信装置、データ送受信システム、及びデータ送受信方法
US7652844B2 (en) * 2003-12-24 2010-01-26 Bruce Edwards System and method for protecting removeable media playback devices
FR2865598B1 (fr) * 2004-01-27 2006-09-08 Anevia Systeme de transmission numerique de sequences multimedia via un reseau de communication du type internet
CN100349449C (zh) * 2004-02-27 2007-11-14 北京邮电大学 基于实时传输协议的端到端网络测量方法
US20070258595A1 (en) * 2004-03-11 2007-11-08 Universal Electronics Inc. Syncronizing Device-Specific Encrypted Data to and from Mobile Devices Using Detachable Storage Media
JP4718122B2 (ja) * 2004-04-06 2011-07-06 株式会社日立製作所 メディア配信装置
US20050283535A1 (en) * 2004-06-17 2005-12-22 Michele Covell Method and system for interactive control of media over a network
US7957733B2 (en) 2004-07-16 2011-06-07 Sellerbid, Inc. Method and apparatus for multimedia communications with different user terminals
US20140071818A1 (en) 2004-07-16 2014-03-13 Virginia Innovation Sciences, Inc. Method and system for efficient communication
US7899492B2 (en) 2004-07-16 2011-03-01 Sellerbid, Inc. Methods, systems and apparatus for displaying the multimedia information from wireless communication networks
US7526566B2 (en) * 2004-09-10 2009-04-28 Sony Ericsson Mobile Communications Ab Methods of operating radio communications devices including predefined streaming times and addresses and related devices
US7752325B1 (en) 2004-10-26 2010-07-06 Netapp, Inc. Method and apparatus to efficiently transmit streaming media
CN1314250C (zh) * 2004-10-29 2007-05-02 清华大学 一种鲁棒的基于点对点的流调度方法
CN100336369C (zh) * 2004-10-29 2007-09-05 清华大学 一种用于流量分配的动态多代理前向差错控制方法
US9485686B2 (en) * 2005-03-04 2016-11-01 Sonim Technologies, Inc. Restructuring data packets to improve voice quality at low bandwidth conditions in wireless networks
US7688817B2 (en) * 2005-04-15 2010-03-30 International Business Machines Corporation Real time transport protocol (RTP) processing component
US20060235883A1 (en) 2005-04-18 2006-10-19 Krebs Mark S Multimedia system for mobile client platforms
US7610280B2 (en) * 2005-05-05 2009-10-27 Cisco Technology, Inc. Method and system for dynamically pre-positioning content in a network based detecting or predicting user presence
US7496678B2 (en) * 2005-05-11 2009-02-24 Netapp, Inc. Method and system for unified caching of media content
US20070130250A1 (en) * 2005-11-23 2007-06-07 Farheap Solutions, Inc. Catch-Up Streaming
US7716551B2 (en) * 2005-12-07 2010-05-11 Microsoft Corporation Feedback and frame synchronization between media encoders and decoders
DE102005059044A1 (de) * 2005-12-08 2007-06-14 Deutsche Thomson-Brandt Gmbh Verfahren zum Bearbeiten von Medieninhalten in einer Netzwerkumgebung sowie Gerät zur Vorratsspeicherung von Medien-Daten
NO326310B1 (no) * 2006-05-22 2008-11-10 Virtek Comm As Dataoverforing av objekter med redusert representasjon
US20070294423A1 (en) * 2006-06-14 2007-12-20 Comverse, Inc. Multi-Client Single-Session Media Streaming
US20080288582A1 (en) * 2006-09-25 2008-11-20 Sms.Ac Systems and methods for passing application pods between multiple social network service environments
WO2008058259A2 (en) * 2006-11-08 2008-05-15 Mywaves, Inc. An apparatus and method for dynamically providing web-based multimedia to a mobile phone
US7739317B2 (en) * 2006-11-10 2010-06-15 Microsoft Corporation Data serialization and transfer
US7971132B2 (en) * 2007-01-05 2011-06-28 Dialogic Corporation Universal multimedia engine and method for producing the same
US8081609B2 (en) * 2007-02-14 2011-12-20 Alcatel Lucent Proxy-based signaling architecture for streaming media services in a wireless communication system
US20100094849A1 (en) * 2007-08-17 2010-04-15 Robert Rose Systems and methods for creating user generated content incorporating content from a content catalog
US8190750B2 (en) 2007-08-24 2012-05-29 Alcatel Lucent Content rate selection for media servers with proxy-feedback-controlled frame transmission
US8200520B2 (en) 2007-10-03 2012-06-12 International Business Machines Corporation Methods, systems, and apparatuses for automated confirmations of meetings
US8250181B2 (en) * 2007-10-19 2012-08-21 Voxer Ip Llc Method and apparatus for near real-time synchronization of voice communications
US8099512B2 (en) * 2007-10-19 2012-01-17 Voxer Ip Llc Method and system for real-time synchronization across a distributed services communication network
US8782274B2 (en) 2007-10-19 2014-07-15 Voxer Ip Llc Method and system for progressively transmitting a voice message from sender to recipients across a distributed services communication network
US8699383B2 (en) 2007-10-19 2014-04-15 Voxer Ip Llc Method and apparatus for real-time synchronization of voice communications
US8559319B2 (en) * 2007-10-19 2013-10-15 Voxer Ip Llc Method and system for real-time synchronization across a distributed services communication network
KR101461973B1 (ko) * 2007-12-28 2014-11-14 엘지전자 주식회사 노티피케이션 메시지 송수신 방법 및 노티피케이션 메시지 수신 장치
US7814221B1 (en) * 2008-06-13 2010-10-12 West Corporation Real-time streaming protocol gateway and proxy for serving and caching static media over a low bandwidth connection
US9485299B2 (en) * 2009-03-09 2016-11-01 Arris Canada, Inc. Progressive download gateway
WO2010138041A1 (en) * 2009-05-29 2010-12-02 Telefonaktiebolaget L M Ericsson (Publ) Methods, apparatuses and computer program products for media recording
US8566393B2 (en) 2009-08-10 2013-10-22 Seawell Networks Inc. Methods and systems for scalable video chunking
CN101697549B (zh) * 2009-10-23 2013-12-04 中兴通讯股份有限公司 流媒体的展示方法、系统以及流媒体管理服务器
EP2604012B1 (de) 2010-08-10 2017-10-04 Telefonaktiebolaget LM Ericsson (publ) Verfahren in einem Medienclient, Medienclient, Steuereinheit und Verfahren in einer Steuereinheit
GB201014842D0 (en) * 2010-09-08 2010-10-20 Zappware Nv Media content sharing
US8745134B1 (en) 2011-03-04 2014-06-03 Zynga Inc. Cross social network data aggregation
US8332488B1 (en) * 2011-03-04 2012-12-11 Zynga Inc. Multi-level cache with synch
US8347322B1 (en) 2011-03-31 2013-01-01 Zynga Inc. Social network application programming interface
US10135776B1 (en) 2011-03-31 2018-11-20 Zynga Inc. Cross platform social networking messaging system
WO2012155926A2 (en) * 2011-05-13 2012-11-22 Nec Europe Ltd. A method for operating a network and a network
US8839275B1 (en) 2011-06-06 2014-09-16 Proximal Data, Inc. Method for intercepting input/output requests and responses
US8522137B1 (en) 2011-06-30 2013-08-27 Zynga Inc. Systems, methods, and machine readable media for social network application development using a custom markup language
CN102857478B (zh) * 2011-06-30 2016-09-28 华为技术有限公司 媒体数据控制方法及装置
CN102883216B (zh) * 2011-07-14 2017-10-10 上海聚力传媒技术有限公司 一种视频直播方法与设备
CN102307195B (zh) * 2011-08-23 2018-10-12 南京中兴新软件有限责任公司 基于流媒体的频道轮播方法及流媒体服务器
EP2759075A4 (de) 2011-09-23 2015-06-03 Gilat Satellite Networks Ltd Dezentralisiertes zwischenspeichersystem
US20130110636A1 (en) * 2011-11-02 2013-05-02 Ross Bott Intelligent placement and delivery of mobile advertisements and electronic coupons via a distributed system in a mobile network
US9237169B2 (en) * 2012-06-01 2016-01-12 Apple Inc. Network stream identification for open FaceTime
US9442859B1 (en) 2012-06-17 2016-09-13 Samsung Electronics Co., Ltd. Method for asynchronous population of data caches used with mass storage devices
US9104552B1 (en) 2012-06-23 2015-08-11 Samsung Electronics Co., Ltd. Method for the use of shadow ghost lists to prevent excessive wear on FLASH based cache devices
US9602557B2 (en) * 2012-10-15 2017-03-21 Wowza Media Systems, LLC Systems and methods of communication using a message header that includes header flags
JP5830496B2 (ja) * 2013-06-07 2015-12-09 株式会社ソニー・コンピュータエンタテインメント ディスプレイコントローラおよび画面転送装置
GB2519516B (en) * 2013-10-21 2017-05-10 Openwave Mobility Inc A method, apparatus and computer program for modifying messages in a communications network
GB2519564A (en) * 2013-10-24 2015-04-29 Shared Band Ltd Multicast transmission over bonded broadband
CN105306565B (zh) * 2015-10-22 2018-09-28 上海斐讯数据通信技术有限公司 远程传输数据的方法、系统及所适用的移动设备
US11116028B2 (en) * 2017-07-10 2021-09-07 Motorola Mobility Llc Multi-access data connection in a mobile network
FR3075541A1 (fr) * 2017-12-20 2019-06-21 Orange Procede de distribution d'un contenu dans un reseau de distribution de contenus, entite d'origine et entites de distribution correspondantes
CN111193767B (zh) * 2019-11-20 2022-07-12 视联动力信息技术股份有限公司 请求数据发送方法、装置和集群化服务器系统
US11876795B2 (en) 2021-08-27 2024-01-16 Bank Of America Corporation Resource processing terminal device with enhanced secure resource transmissions based on image capture
CN114979093B (zh) * 2022-05-13 2024-03-29 深圳智慧林网络科技有限公司 一种基于rtp的数据传输方法、装置、设备和介质

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5956321A (en) * 1995-03-16 1999-09-21 Kabushiki Kaisha Toshiba Stream scheduling system for real time stream server
US5592612A (en) 1995-04-28 1997-01-07 Birk; Yitzhak Method and apparatus for supplying data streams
US5737531A (en) * 1995-06-27 1998-04-07 International Business Machines Corporation System for synchronizing by transmitting control packet to omit blocks from transmission, and transmitting second control packet when the timing difference exceeds second predetermined threshold
KR19990072122A (ko) 1995-12-12 1999-09-27 바자니 크레이그 에스 실시간 영상 전송 방법 및 장치
US6445738B1 (en) * 1996-04-25 2002-09-03 Opentv, Inc. System and method for creating trick play video streams from a compressed normal play video bitstream
JPH1042295A (ja) * 1996-07-19 1998-02-13 Sony Corp 映像信号符号化方法および映像信号符号化装置
US5847771A (en) * 1996-08-14 1998-12-08 Bell Atlantic Network Services, Inc. Digital entertainment terminal providing multiple digital pictures
US5953506A (en) * 1996-12-17 1999-09-14 Adaptive Media Technologies Method and apparatus that provides a scalable media delivery system
US6359656B1 (en) * 1996-12-20 2002-03-19 Intel Corporation In-band synchronization of data streams with audio/video streams
US6078958A (en) 1997-01-31 2000-06-20 Hughes Electronics Corporation System for allocating available bandwidth of a concentrated media output
US5918020A (en) * 1997-02-28 1999-06-29 International Business Machines Corporation Data processing system and method for pacing information transfers in a communications network
US6674477B1 (en) * 1997-03-17 2004-01-06 Matsushita Electric Industrial Co., Ltd. Method and apparatus for processing a data series including processing priority data
DE69835314T2 (de) * 1997-04-15 2007-05-10 Hewlett-Packard Development Co., L.P., Houston Verfahren und Vorrichtung zur formatgesteuerten Interaktion zwischen Geräten
US6289388B1 (en) * 1997-06-02 2001-09-11 Unisys Corporation System for communicating heterogeneous computers that are coupled through an I/O interconnection subsystem and have distinct network addresses, via a single network interface card
US6014694A (en) * 1997-06-26 2000-01-11 Citrix Systems, Inc. System for adaptive video/audio transport over a network
US6038601A (en) * 1997-07-21 2000-03-14 Tibco, Inc. Method and apparatus for storing and delivering documents on the internet
US6134596A (en) 1997-09-18 2000-10-17 Microsoft Corporation Continuous media file server system and method for scheduling network resources to play multiple files having different data transmission rates
US6594699B1 (en) * 1997-10-10 2003-07-15 Kasenna, Inc. System for capability based multimedia streaming over a network
US6181713B1 (en) * 1997-10-27 2001-01-30 Sun Microsystems, Inc. Selectable depacketizer architecture
US5928331A (en) * 1997-10-30 1999-07-27 Matsushita Electric Industrial Co., Ltd. Distributed internet protocol-based real-time multimedia streaming architecture
US6134243A (en) * 1998-01-15 2000-10-17 Apple Computer, Inc. Method and apparatus for media data transmission
US6029200A (en) * 1998-03-09 2000-02-22 Microsoft Corporation Automatic protocol rollover in streaming multimedia data delivery system
US6275471B1 (en) * 1998-05-12 2001-08-14 Panasonic Technologies, Inc. Method for reliable real-time multimedia streaming
US6603883B1 (en) * 1998-09-08 2003-08-05 Canon Kabushiki Kaisha Image processing apparatus including an image data encoder having at least two scalability modes and method therefor
JP3351744B2 (ja) * 1998-09-10 2002-12-03 株式会社東芝 データ伝送システム
CA2347871C (en) 1998-10-30 2007-10-09 British Telecommunications Public Limited Company Data transport
US6466550B1 (en) * 1998-11-11 2002-10-15 Cisco Technology, Inc. Distributed conferencing system utilizing data networks
US6408128B1 (en) * 1998-11-12 2002-06-18 Max Abecassis Replaying with supplementary information a segment of a video
US6587985B1 (en) 1998-11-30 2003-07-01 Matsushita Electric Industrial Co., Ltd. Data transmission method, data transmission apparatus, data receiving apparatus, and packet data structure
US6401126B1 (en) 1999-03-10 2002-06-04 Microsoft Corporation File server system and method for scheduling data streams according to a distributed scheduling policy
US6405256B1 (en) * 1999-03-31 2002-06-11 Lucent Technologies Inc. Data streaming using caching servers with expandable buffers and adjustable rate of data transmission to absorb network congestion
US6639896B1 (en) * 1999-04-01 2003-10-28 Diva Systems Corporation Asynchronous serial interface (ASI) ring network for digital information distribution
US8099758B2 (en) * 1999-05-12 2012-01-17 Microsoft Corporation Policy based composite file system and method
US6263371B1 (en) * 1999-06-10 2001-07-17 Cacheflow, Inc. Method and apparatus for seaming of streaming content
US6546421B1 (en) * 1999-06-30 2003-04-08 Siemens Corporate Research, Inc. System and method for automatic selection of internet data streams
JP2001054095A (ja) 1999-08-09 2001-02-23 Fujitsu Ltd 情報配信/再生制御装置、情報配信/再生制御方法および情報配信/再生制御プログラムを記録したコンピュータ読み取り可能な記録媒体
US6771644B1 (en) * 1999-09-17 2004-08-03 Lucent Technologies Inc. Program insertion in real time IP multicast
US6300887B1 (en) * 1999-11-09 2001-10-09 Nokia Networks Oy Efficient handoff procedure for header compression
US6708213B1 (en) * 1999-12-06 2004-03-16 Lucent Technologies Inc. Method for streaming multimedia information over public networks
US6907073B2 (en) * 1999-12-20 2005-06-14 Sarnoff Corporation Tweening-based codec for scaleable encoders and decoders with varying motion computation capability
US6625258B1 (en) * 1999-12-27 2003-09-23 Nortel Networks Ltd System and method for providing unified communication services support
US6505169B1 (en) 2000-01-26 2003-01-07 At&T Corp. Method for adaptive ad insertion in streaming multimedia content
JP2003521067A (ja) * 2000-01-28 2003-07-08 ウィリアムズ コミュニケーションズ, エルエルシー 起点サーバとクライアントとの間のメディアリソースリクエストおよび/または応答を書き換えるシステムおよび方法
US6747991B1 (en) * 2000-04-26 2004-06-08 Carnegie Mellon University Filter and method for adaptively modifying the bit rate of synchronized video and audio streams to meet packet-switched network bandwidth constraints
US7191242B1 (en) * 2000-06-22 2007-03-13 Apple, Inc. Methods and apparatuses for transferring data
US7216098B1 (en) 2000-10-20 2007-05-08 At Systems, Inc. Electronic transmission and tracking of deposit information
US7627886B2 (en) * 2002-03-04 2009-12-01 Microsoft Corporation Systems and methods for displaying video streams
US7739715B2 (en) * 2003-06-24 2010-06-15 Microsoft Corporation Variable play speed control for media streams

Also Published As

Publication number Publication date
US8078747B2 (en) 2011-12-13
US7653685B2 (en) 2010-01-26
EP1297676A2 (de) 2003-04-02
DE60112759D1 (de) 2005-09-22
HK1063903A1 (en) 2005-01-14
US20100125629A1 (en) 2010-05-20
HK1087868A1 (en) 2006-10-20
EP1635532A2 (de) 2006-03-15
HK1114720A1 (en) 2008-11-07
WO2001099374A3 (en) 2002-08-29
US8549070B2 (en) 2013-10-01
EP1411698A1 (de) 2004-04-21
EP1916820B1 (de) 2015-01-14
US20070143468A1 (en) 2007-06-21
EP1411698B1 (de) 2006-05-10
US20140006566A1 (en) 2014-01-02
EP1635532A3 (de) 2006-07-26
US7007062B1 (en) 2006-02-28
US20120089667A1 (en) 2012-04-12
US20120079072A1 (en) 2012-03-29
WO2001099374A2 (en) 2001-12-27
EP1635532B1 (de) 2008-10-22
US8307107B2 (en) 2012-11-06
US8037132B2 (en) 2011-10-11
DE60119589T2 (de) 2006-09-07
DE60119589D1 (de) 2006-06-14
US20060143303A1 (en) 2006-06-29
DE60136302D1 (de) 2008-12-04
US8732269B2 (en) 2014-05-20
US7191242B1 (en) 2007-03-13
US9077781B2 (en) 2015-07-07
EP1916820A1 (de) 2008-04-30
EP1297676B1 (de) 2005-08-17
US20070094407A1 (en) 2007-04-26

Similar Documents

Publication Publication Date Title
DE60112759T2 (de) Vorrichtungen und verfahren zur datenübertragung
DE60015423T2 (de) Verfahren und Vorrichtung zur Objektwiedergabe in einem Netzwerk
DE102014108888B4 (de) Virtuelle Back-to-Back-Web-Real-Time-Communications(WebRTC)-Agenten und verwandte Verfahren, Systeme und computerlesbare Medien
DE60131990T3 (de) Vorrichtung und verfahren zur selektiven verschlüsselung von über ein netzwerk zu übertragenden multimediadaten
EP2837154B1 (de) Verfahren zur steuerung von datenströmen einer virtuellen sitzung mit mehreren teilnehmern, kollaborationsserver, computerprogramm, computerprogrammprodukt und digitales speichermedium
DE60302051T2 (de) Verfahren, netzwerk und gerät zur konfiguration und steuerung von netzressourcen beim zurverfügungstellen von inhalten mit verteilungsregeln
DE60215117T2 (de) Mehrbenutzeranwendungen in multimedia-netzwerken
DE60036912T2 (de) System und Verfahren zur Bandbreite-Basierte Codec-Auswahl
DE60120354T2 (de) Rsvp-verarbeitung in 3g-netzwerken
DE602005003668T2 (de) Verbesserungen in nachrichtenorientierten kommunikationen
DE102014108904A1 (de) Virtuelle Web-Real-Time-Communications(WebRTC)-Gateways und verwandte Verfahren, Systeme und computerlesbare Medien
WO2004021676A1 (de) Verfahren zum übertragen von nutzdatenobjekten gemüss einem profilinformationsobjekt
DE602004010704T2 (de) Verfahren und systeme zum dynamischen konfigurieren einer netzwerkkomponente
DE60030902T2 (de) Datenempfangsvorrichung
DE602005005727T2 (de) Verfahren und Vorrichtung zur Verbindung von Knoten mit heterogenen Kommunikationsprotokollen
DE60121538T2 (de) Verfahren zur Anpassung von Informationsinhalten an die Eigenschaften mobiler Endgeräte
DE60103215T2 (de) Verwendung einer zentralen Datenanbieter zum Koordinieren von Erkennungenszuweisung in einem verteilten System
DE10231941A1 (de) Datenpaketstruktur für direkt adressiertes Multicast-Protokoll
DE60127342T2 (de) Systeme und Verfahren für gleichrangige Verbindungen über eine Netz-Schnittstellen-Karte
DE60201899T2 (de) Anordnung zur verarbeitung von client-anforderungen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: APPLE INC., CUPERTINO, CALIF., US

8328 Change in the person/name/address of the agent

Representative=s name: BOSCH JEHLE PATENTANWALTSGESELLSCHAFT MBH, 80639 M