DE60209123T2 - Verfahren zur annahmesteuerung von verbindungen und schnelle bestimmung der lieferung von multimedia-inhalten in netzen - Google Patents

Verfahren zur annahmesteuerung von verbindungen und schnelle bestimmung der lieferung von multimedia-inhalten in netzen Download PDF

Info

Publication number
DE60209123T2
DE60209123T2 DE60209123T DE60209123T DE60209123T2 DE 60209123 T2 DE60209123 T2 DE 60209123T2 DE 60209123 T DE60209123 T DE 60209123T DE 60209123 T DE60209123 T DE 60209123T DE 60209123 T2 DE60209123 T2 DE 60209123T2
Authority
DE
Germany
Prior art keywords
throughput
client
rate
minimum
capacity
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
DE60209123T
Other languages
English (en)
Other versions
DE60209123D1 (de
Inventor
Douglas Arthur Mountain View ALLEN
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.)
Democrasoft Inc
Original Assignee
Burst com 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 Burst com Inc filed Critical Burst com Inc
Application granted granted Critical
Publication of DE60209123D1 publication Critical patent/DE60209123D1/de
Publication of DE60209123T2 publication Critical patent/DE60209123T2/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/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/15Flow control; Congestion control in relation to multipoint traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/29Flow control; Congestion control using a combination of thresholds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/74Admission control; Resource allocation measures in reaction to resource unavailability
    • H04L47/741Holding a request until resources become available
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/76Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions
    • H04L47/762Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions triggered by the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/76Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions
    • H04L47/765Admission control; Resource allocation using dynamic resource allocation, e.g. in-call renegotiation requested by the user or requested by the network in response to changing network conditions triggered by the end-points
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • H04L47/801Real time traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/821Prioritising resource allocation or reservation requests
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/822Collecting or measuring resource availability data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/823Prediction of resource usage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/826Involving periods of time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/83Admission control; Resource allocation based on usage prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • 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/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/75Media network packet handling
    • H04L65/752Media network packet handling adapting media to network capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • 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/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests
    • 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/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/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/23805Controlling the feeding rate to the network, e.g. by controlling the video pump
    • 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/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2381Adapting the multiplex stream to a specific network, e.g. an Internet Protocol [IP] network
    • 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/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/2385Channel allocation; Bandwidth allocation
    • 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/239Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
    • H04N21/2393Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
    • H04N21/2396Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests characterized by admission policies
    • 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/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2401Monitoring of the client buffer
    • 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/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26208Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
    • H04N21/26216Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving the channel capacity, e.g. network bandwidth
    • 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/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/47202End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
    • 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/637Control signals issued by the client directed to the server or network components
    • H04N21/6377Control signals issued by the client directed to the server or network components directed to server
    • 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
    • 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
    • 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]

Description

  • Hintergrund der Erfindung
  • Gebiet der Erfindung
  • Diese Erfindung betrifft das Gebiet der Lieferung von Multimedia-Inhalten über eine Vielfalt von Netzen. Insbesondere betrifft sie Multimedia-Server, welche viele Klienten gleichzeitig mit der Lieferung von Multimedia-Inhalt bedienen, welcher bei jedem Klienten verwendet und wiedergegeben wird. Sie richtet sich auf Verfahren zur Bestimmung optimaler Lieferraten an jeden Klienten und Verfahren zum Ermitteln, ob neue Klienten angenommen werden können, ohne die Dienstqualität für bestehende Klienten zu verschlechtern.
  • Stand der Technik
  • In der Geschichte der Lieferung von Multimedia-Programmen wurde von Teilen der Industrie lange die Verwendung von großen Puffern auf der Klientenseite sowie eine schnellere Lieferung als in Echtzeit von Inhalt über ein Netz als die Beste aller Möglichkeiten verfochten: ein Erlebnis einer störungsfreien (jitter-free) Betrachtung und eine kosteneffektive Verwendung der vorhandenen Netzresourcen. Beispielsweise beschreiben Kim, S. et al. in "Call Admission Control for Prioritized Adaptive Multimedia Services in wireless/Mobile Networks", VTC 2000-Spring, 2000 IEEE 51st Vehicular Technology Conference Proceedings, Tokyo, Japan, May 15–18, 2000, IEEE Vehicular Technology Conference, New York, NY: IEEE, US, vol. 2 of 3, Conf. 51, 15 May 2000 (2000-05-15), Seiten 1536–1540, XP000968128, ISBN: 0-7803-5719-1 ein Verfahren von Bandbreitenzuteilung für eine Lieferung von gespeichertem digitalen Inhalt von wenigstens einem Server-Gerät an wenigstens ein Klient-Gerät mittels eines Netzes, wobei das Verfahren die folgenden Schritte umfasst: Vorschreiben einer Steuervariable, welche eine Vorgabe-Durchsatzrate von dem Server-Gerät an jedes Klient-Gerät darstellt; Bestimmen zeitveränderlicher Randbedingungen für die Durchsatzrate des Inhalts; Bestimmen einer Kostenfunktion der Steuervariablen für alle Klienten; und Vorschreiben von Bandbreite für alle Klienten auf der Grundlage des Wertes der Steuervariablen, welche die Kostenfunktion maximieren, umfassend ein Durchführen periodischer Berechnungen, um den Wert der Steuervariable derart zu aktualisieren, dass die Bandbreite kontinuierlich jedem Klienten zugeteilt werden kann.
  • Einige wenige Systeme gehen jedoch sehr weit darin, sich damit zu befassen, wie Klienten zeitlich einzuplanen sind oder sich mit einem Verfahren zu befassen, neue Klienten anzunehmen. Echtzeitsysteme, häufig als Streaming-Systeme bekannt, können neue Klienten auf eine sehr einfache Weise zeitlich einplanen – falls eine hinreichende Bandbreite für den hinzugefügten Echtzeitstream verbleibt, kann dann der Klient angenommen werden. Jedoch maximieren solche Systeme nicht die Anzahl gleichzeitiger Klienten. Andererseits eröffnet eine schnellere Lieferung als in Echtzeit, manchmal als Store-and-Forward-Systeme (Systeme zum Speichern und Absenden) bekannt, die Möglichkeit, flexiblere Zeitplan-Prozeduren einzusetzen, um die Anzahl an gleichzeitigen Klienten zu steuern und zu optimieren, während ein hohes Niveau an Dienstqualität gewährleistet ist.
  • Die Verfahren für solch eine Rufannahme und Durchsatzmodulation, welche in dem Stand der Technik vorgeschlagen wurden, waren in großem Maße ad hoc (provisorisch) und auch unvollständig. Diese waren ad hoc in dem Sinne, dass es kein führendes Grundprinzip für ihre Auswahl unter vielen möglichen und möglicherweise überlegenen Alternativen gab. Die Verfahren waren auch insoweit unvollständig, als sie sich nicht mit der Frage befasst haben, ob eine hereinkommende Dienstanforderung angenommen oder abgewiesen werden sollte. Video-on-Demandsysteme, oder allgemeiner, jedes System, in welchem ein Multimedia-Server dazu ausgelegt ist, mehrere Klienten über ein Netz zu bedienen, um einen vorherbestimmten Inhalt zu liefern, kann/können von der Verwendung solcher Durchsatzmodulationstechniken und Aufannahmeprozeduren profitieren.
  • Die oben beschriebenen Probleme des Standes der Technik sind, wie durch den angefügten Anspruch 1 beschrieben, überwunden.
  • Optimale Modulation des Inhaltsdurchsatzes
  • Ein bekannter Weg, Verfahren der hier geforderten Klasse zu entwerfen, ist, das Problem so umzuformulieren, dass es als ein Optimierungsproblem zu lösen ist, in welchem man versucht, eine gewünschte Wertefunktion nach und nach zu maximieren, wobei diese Wertefunktion einem Satz von betriebsmäßigen Randbedingungen der realen Welt unterworfen ist, welche Randbedingungen typischerweise zeitabhängig variieren. Entsprechend legt eine Prozedur für optimale Lieferung, bei einem gegebenen Satz an Klienten und verbundenen Sitzungen, Inhaltsdurchsatzraten von dem Inhaltsserver an jeden seiner Klienten kontinuierlich fest, um so einen aggregierten Wert entsprechend der bestimmenden Wertefunktion zu maximieren.
  • Dieser Ansatz hat mehrere Vorteile: 1) Optimierungsprobleme sind gut verstanden und sind durch eine große und vielfältige Sammlung an Rechenverfahren lenkbar; 2) falls existent, ist eine erhaltene globale Lösung wohl aufgrund ihrer Konstruktion optimal, und daher allen anderen überlegen oder gleich.
  • Die vorliegende Erfindung lehrt das Verfahren, zwei besondere Wertefunktion zu optimieren:
    • 1) gesamte gelieferte Daten (maximiere Durchsatz)
    • 2) gesamte Liefergebühren (maximiere Gebühren).
  • Die erste Wertefunktion unterscheidet nicht einen Kunden von einem anderen und wird unabhängig von den Klientenkenndaten so viele Daten wie möglich von dem Server zu den Klienten liefern. Die zweite Wertefunktion bevorzugt den Dienst gut zahlender Kunden. Es ist leicht zu sehen, dass die erste Funktion ein Spezialfall der zweiten ist, wobei alle Klienten gleich vergebührt werden.
  • Wie in dieser Offenbarung zu sehen ist, erfordert ein Optimieren dieser Funktionen und Identifizieren der notwendigen Randbedingungen eine neue und einzigartige Perspektive, welche speziell für die Multimedia-Umgebung entworfen wurde. Weiterhin sind die offenbarten Verfahren speziell dazu entworfen, reale (real-world) Szenarien heutiger Netze zu berücksichtigen und aufzunehmen. Daher sind viele Variationen des Verfahrens zum Aufnehmen verschiedener Szenarien dargestellt.
  • Zusammenfassung der Erfindung
  • Auf-/Verbindungsannahmesteuerung (Call/Connection Acceptance Control, CAC)
  • Eine CAC-Prozedur ist dafür verantwortlich, zu entscheiden, ob ein Kandidat für einen Dienst aufgenommen werden kann, ohne Sitzungen zu gefährden, welche bereits zu der gegenwärtigen Zeit oder einer Zeit in der Zukunft ablaufen; bei einem Misslingen, zu entscheiden, ob eine Dienstanforderung für eine Zeit in eine Warteschlange gestellt werden sollte oder zurückgewiesen werden sollte.
  • Durchsatzmodulation
  • Verfahren zur Durchsatzmodulation sind die Bereiche des Systems, welche die Kommunikation und den Datendurchsatz zwischen dem Server und den Klienten verwalten. Zusammengenommen stellen diese Verfahren dem Klienten die Multimedia-Daten bereit und stellen dem Server die Information über den Status der Übertragung, der Wiedergabe, des Benutzerstatus und des Netzstatus bereit. Diese Parameter werden ferner durch die vorliegende Erfindung in den CAC-Prozeduren verwendet. Tatsächlich sind die vorgeschlagenen CAC-Prozeduren, wie gezeigt wird, eng mit den Durchsatzmodulationsverfahren verbunden.
  • Anpassung an Variationen der Netzkapazität
  • Betriebliche Randbedingungen können sich mit der Zeit ändern. Beispielsweise könnte man wählen, die für eine Lieferung von Multimedia-Inhalt verfügbare gesamte Bandbreite entsprechend der Tageszeit zu variieren. Alternativ können übermäßige (exogenous) Datendurchsätze auf dem Netz unerwartete Störungen durch Inanspruchnahme von verfügbarer Bandbreite und Behinderung der Lieferung von Daten auf errichteten Sitzungskanälen verursachen. Die Strategie einer Lieferung von Inhalt der vorliegenden Erfindung umfasst die Fähigkeit, sich an geplante wie auch unerwartete Störungen anzupassen, um so unerwünschte Unterbrechungen des Dienstes zu minimieren.
  • Burst-(Übertragungsblock)-Übertragungen stellen die Möglichkeit zur Anpassung bereit
  • Die vorliegende Erfindung stellt aufgrund ihrer Übertragungen, die schneller als in Echtzeit stattfinden (auch als Burst-Übertragungen bekannt), welche durch die Verwendung von Netzen großer Bandbreite und großem Klientencache oder Zwischenspeicher realisiert sind, eine Möglichkeit zum Anpassen an sich ändernde Netzbedingungen bereit. Demgegenüber sind Echtzeit-(Streaming-)Systeme im wesentlichen für ungünstigste Szenarien entworfen: für jeden Klienten muß angenommen werden, dass er konstant die vollständige Echtzeit-Wiedergabe-Bandbreite verwendet. Solch ein System ist nicht in der Lage, sich an eine Abweichung von diesem Szenario anzupassen. Beispielsweise sei der einfache Fall genommen, in welchem die gesamte Serverbandbreite zu 100 % durch alle Klienten verwendet wird, welche das Streamvideo wiedergeben. Sollte sich eine Netzbedingung ändern, wie beispielsweise eine Verringerung der verfügbaren Bandbreite in dem Netz, dann wird die Wiedergabe an einen oder mehr Klienten unterbrochen und das System kann sich von solch einer Bedingung nicht wieder erholen, bis die Bandbreite zurückerlangt ist. Noch ungünstiger ist, wenn ein einzelner Klient auf Pause drückt. Dann muß entweder die ungenutzte Bandbreite reserviert bleiben und keine weiteren Klienten können angenommen werden, oder der Klient, der auf Pause gedrückt hat, wird herausgenommen, um den neuen Klienten zu bedienen. Im wesentlichen kann wenig oder kaum von einer CAC-Prozedur implementiert sein.
  • Demgegenüber überträgt die vorliegende Erfindung in einer Burst-Übertragung Bereiche eines Programms und setzt unmittelbar anderweitig fort ("gets ahead of itself", "übertrifft sich selber"), so dass ein Freiraum für Myriaden von Verfahren entsteht, neue Klienten, Klienteninteraktivität und mögliche Netzfluktuationen handzuhaben.
  • Es werden Verfahren gelehrt, die Durchsatzrate zu jedem Klienten optimal zu bestimmen. Es werden auch Verfahren gelehrt, neue Klienten anzunehmen oder zurückzuweisen; diese Rufannahmeverfahren sind eng mit den Verfahren zur Durchsatzratenmodulation verbunden. Eine Reihe von Randbedingungsausdrücken wird dargestellt, welche die Verfahren zur Bestimmung der Durchsatzraten und des Annehmens neuer Klienten bestimmen. Es werden Techniken linearer Programmierung verwendet, um diese Ausdrücke optimal zu lösen. Verschiedene Ausführungsformen einschließlich Szenarien für Mehrfach-Durchsatz-Tarife und tageszeitabhängiger Bandbreitenvariationen werden dargestellt.
  • Kurze Beschreibung der Zeichnungen
  • Diese sowie andere Merkmale der vorliegenden Erfindung werden durch Bezugnahme auf die Zeichnungen klarer, wobei:
  • 1 den Durchsatz von Steuerung und/oder Daten zwischen den verschiedenen Stationen einer Inhaltslieferungssitzung zeigt;
  • 2 das Entität-Datenmodell zeigt;
  • 3 geometrisch die Formulierung des linearen Programmierungsproblems zeigt;
  • 4a geometrisch eine Erweiterung der Formulierung des Durchsatzoptimierungsproblems zeigt;
  • 4b geometrisch das Verfahren für eine rasche Bestimmung der Durchsatzraten zur Maximierung des Durchsatzes zeigt;
  • 5 ein Verfahren zum Implementieren der Durchsatzmodulation zum Maximieren eines Durchsatzes zeigt;
  • 6 ein Verfahren zum Implementieren einer Durchsatzmodulation für maximierte Gebühren zeigt;
  • 7 einen typischen Inhaltsdurchsatz zeigt;
  • 8 eine typische Server-Freiraumkapazität zeigt;
  • 9 ein Verfahren zur Rufannahme und -steuerung (CAC) zeigt;
  • 10 geplante Randbedingungen für einen maximalen Durchsatz zeigt;
  • 11 ein Verfahren zur Rufannahme und -steuerung (CAC) mit zeitgeplanten Durchsatzänderungen zeigt;
  • 12 eine Schichtung der Dienste zeigt;
  • 13 ein Verfahren zur Rufannahme und -steuerung (CAC) für maximale Gebühren zeigt;
  • 14 ein Systemblockdiagramm für ein System ist, welches die vorliegende Optimierung der Klientenbandbreite implementiert;
  • 15 ein Flussdiagramm ist, das ein algebraisches Verfahren zum Errechnen der Optimierung der Klientenbandbreite zeigt;
  • 16 ein Flussdiagramm ist, das ein algebraisches verfahren zum Errechnen der Optimierung von Klientenkosten zeigt; und
  • 17 ein optimiertes Betrachten eines Live-Ereignisses zeigt.
  • Detaillierte Beschreibung der Erfindung Daten- und Steuerdurchsätze (1)
  • 1 zeigt den Durchsatz von Steuerung und/oder Daten zwischen den verschiedenen Stationen einer Inhaltslieferungssitzung. Wie gezeigt, versucht ein Klient eine Verbindung 100 zu öffnen und macht sich selbst dem Inhaltsauswahlsubsystem mittels eines Steuerkanals (nicht gezeigt) mit einer geringen Bandbreite bekannt. Als nächstes wird der Klient authentifiziert (beglaubigt) und es wird, typischerweise mit der Hilfe von Browsersoftware, eine Auswahl durchgeführt 110. Falls der Klient nicht authentifiziert wird, wird er von dem System abgelehnt 120. Falls der Klient authentifiziert wurde und ein Programm zur Betrachtung ausgewählt wurde, dann wird die Rate des Dienstes an dieser Stelle gesetzt 130, möglicherweise entsprechend der getroffenen Auswahl oder entsprechend irgendwelcher vertragsmäßigen Klauseln. Der Klient wird nun in der Dienstewarteschlange des CAC-Subsystems angeordnet 140. Ein Klient, der zu lange warten gelassen wird, wird die Dienstanforderung schließlich zurückziehen (balk) 150. Unter der Annahme, dass dies nicht geschieht, wird das CAC-Subsystem 140 schließlich dem Klienten einen Kanal zuordnen und eine Sitzung öffnen 160. Die Steuerung wird nun dem Inhaltsdurchsatzmodulator (nicht gezeigt) übertragen, welcher den Durchsatz an Inhalt von dem Server zu dem Klienten startet (170). Nachfolgende Änderungen einer Kapazität, seien sie nun vorhersagbar oder nicht, können eine plötzliche Beendigung einer ablaufenden Sitzung erzwingen 180. Anderenfalls läuft die Sitzung zu einem Abschluss 190.
  • Entität-Datenmodell (2, Listing, Tabelle) Die Entitäten (entities, Datenbereiche), welche nun diskutiert werden, sind in 2 gezeigt. Ein Klient (client) 200 erhält bestimmte Daten, die mit dieser Entität verbunden sind; wie gezeigt aber nicht mit Bezugszeichen versehen, welche Entität ohne Einschränkung status (Status), id (id), und costOfService (dienstKosten) umfasst. Die anderen Entitäten umfassen auch unbezeichnete, aber gezeigte Daten. Das Diagramm zeigt ferner die Beziehung zwischen jeder Entität. Wie gezeigt, ist dem Klienten 200 eine Sitzung (session) 240 zugewiesen. Der Klient 200 verwendet einen Kanal (channel) 210. Der Klient 200 wählt die Inhaltsauswahl (contentSelection) 230. Die Sitzung 240 liefert Inhalt durch den Kanal 210. Der Server 220 moduliert den Kanal 210. Der Server 200 enthält die Inhaltsauswahl 210. Der Server 200 akzeptiert oder verweist den Klienten 200 oder weist den Klienten 200 zurück und die Inhaltsauswahl 230 ist mit der Sitzung 240 verbunden.
  • Weiterhin zeigt die 2 die verschiedenen Ein-zu-viele-Beziehungen. Jeder Klient 200 verwendet einen Kanal 210. Der Klient 200 kann oder kann nicht einen Kanal 210 aufnehmen, wie durch die 0/1-Schreibweise gezeigt ist. Genauso kann oder kann nicht der Klient 200 eine Sitzung 240 aufnehmen. Wenn jedoch der Klient 200 eine Sitzung 240 aufnimmt, wird er immer einen Kanal 210 aufnehmen, da der Kanal 210 und die Sitzung 240 als ein Paar zugeordnet sind. Ein oder mehr (N) Klienten 200 können eine der Inhaltsauswahl 230 auswählen. Und der Server 220 enthält eine oder mehr (N) Inhaltsauswahl(en) 230. Jede der Inhaltsauswahl(en) 230 ist mit 0 bis N Sitzungen 240 verbunden. Jede Sitzung 240 liefert Inhalt durch einen Kanal 210. Und der Server 220 moduliert einen oder mehr (N) Kanal 210.
  • Eine detailliertere Liste jeder Entität von 2 sowie die mit jeder Entität verbundene Beschreibung, Datenelemente und Funktionsaufrufe sind unten aufgelistet. Dieses Listing ist dem von objektorientierter Programmierung sehr ähnlich. Als solches stellen "Methoden" die Fähigkeit dar, Daten zu erhalten oder zu modifizieren, während "Attribute" Daten darstellen, welche direkt mit der besonderen Entität verbunden sind. Das Listing beinhaltet auch Informationen, die sich auf eine Ausführungsform beziehen, wobei Besonderheiten der Softwareprogrammierung offenbart sind, wie z.B. ein Variablentyp (double (doppelt), int (Ganzzahlvariable, Integer), usw.) und mehr. Die vorliegende Erfindung ist nicht auf solch eine Ausführungsform eingeschränkt und andere Implementationen sind möglich, ohne von dem Gebiet und der Absicht der vorliegenden Erfindung abzuweichen. Das Listing, obwohl es detailliert ist, ist eher erläuternd hinsichtlich der Daten und Funktionen, welche in den hierin beschriebenen Gleichungen und Verfahren verwendet werden.
  • Daher werden mit den verschiedenen Entitäten verbundene Daten und Funktionen von dieses Listings in den bereitstehenden Gleichungen, Flussdiagrammen und Verfahren verwendet. Der Leser wird auf dieses Listing als Referenz verwiesen, während er entsprechende Gleichungen liest und entsprechende Zeichnungen untersucht.
  • Figure 00130001
  • Figure 00140001
  • Figure 00150001
  • Figure 00160001
  • Figure 00170001
  • Figure 00180001
  • Figure 00190001
  • Figure 00200001
  • Figure 00210001
  • Figure 00220001
  • Die folgende Tabelle fasst die wichtigsten Punkte der zuvor erfolgen detaillierten Beschreibung jeder Entität in 2 zusammen. Tabelle 1
    Entität Beschreibung Beschreibung
    Klient 200 Jeder Klinet wird durch einen verbundenen eindeutigen IntegerindexId bezeichnet. Die Menge aktiver Klineten ist mit SactiveClients bezeichnet. Die Menge an verwiesenen Klienten ist mit SQdClients bezeichnet. Von hereinkommenden Klienten wird erwartet, dass sie den Inhalt auswählen, den sie anzusehen wünschen, bevor sie für die Abfertigung durch das CAC-Subsystem in eine Warteschlange platziert werden, was eine Kenntnis der Erfordernisse der Klientenbandbreite, der Wiedergabedauer und der Dienstkosten erfordert, welche alle entsprechend der Auswahl variieren können.
    Server 220 Server sind in einem Netz angeordnet und können Mediainhalt durch das Netz an ihre Klienten bis zu einer bezeichneten maximalen Durchsatzrate liefern. Der Server ist verantwortlich, auf eine optimale Weise, für ein Annehmen oder Zurückweisen von Klienten, für ein Starten von Sitzungen und verbundenen Kanälen für die ersteren, sowie für ein
    Modulieren von Inhaltsdurchsätzen über alle Kanäle zu sorgen.
    Kanal 210 Ein Kanal stellt den Datenpfad zwischen dem Server und dem Klienten dar. Der Kanalpuffer ist typischerweise nahe der oder innerhalb der Betrachtungsstation des Klienten angeordnet. Der Durchsatz von Inhalt durch den Kanal wird durch das Durchsatzmodulatorsubsystem eingestellt.
    Inhaltsauswahl 230 Ein Server wird typischerweise als Magazin für Inhalt dienen, welchen der Server Klienten auf Anforderung liefern kann. Für unsere Zwecke ist ein Mediainhalt durch seine Nutzlast und die Wiedergabedauer gekennzeichnet, welche zusammen die averagePlayRate = (payload·8)/(playTime·60) ergeben. Die averagePlayRate ist nichts anderes als die Streamingrate, die durch Echtzeitjust-in-time-Streamingalgorithmen vorgegeben wird.
    Sitzung 240 Jede Sitzung stellt eine Instanz von Mediainhaltlieferung an einen verbundenen Klienten über einen zugeordneten Kanal dar. Die playTimeToGo gibt die verbleibende Zeit an, bevor der Inhalt dem Klienten vollständig wiedergegeben wurde. Die payloadToGo ist
    die noch nicht dem Kanal zugelieferte Menge an Inhaltsdaten. Eine Sitzung endet, wenn dieser Wert null erreicht, zu welcher Zeit playTimeToGo entsprechend der Kapazität, dem Niveau des Kanalpuffers und dem Mediawiedergabedurchsatz noch groß sein kann.
  • Den Inhaltsdurchsatz betreffende Randbedingungen
  • Bevor auf mehr Figuren Bezug genommen wird, ist es erforderlich, einige Formeln und Problemformulierungen aufzustellen, welche in den folgenden Verfahren verwendet werden.
  • Der Durchsatz von Inhalt zwischen Entitäten ist zu allen Zeiten den folgenden Randbedingungen unterworfen. Pufferniveaus sind immer in MBytes ausgedrückt und Datenraten in Mbits/sek.
  • Figure 00250001
  • Die Summe aller Kanaldurchsätze kann die vorgegebene maximale Durchsatzkapazität des Servers nicht überschreiten.
  • Figure 00250002
  • Der Datenpfad von dem Server zu dem Klienten ist seiner eigenen Einschränkung unterworfen.
  • Figure 00260001
  • Dem Kanalpuffer ist es niemals gestattet, überzulaufen.
  • Figure 00260002
  • Inhalt, welcher nicht existiert, kann nicht geliefert werden. (Randbedingung 1 wird sich für gewöhnlich durchsetzen, außer an dem Ende einer Sitzung).
  • Die oben aufgeführten Randbedingungen sind direkte Anwendungen des gesunden Menschenverstandes in Bezug auf den Durchsatz von Daten durch eingeschränkte Kanäle, aus endlichen Datenquellen und in und aus begrenzten Puffern. Demgegenüber ist die folgende Randbedingung, welche eine minimale Kanaldurchsatzrate anstelle einer maximalen vorgibt, weniger offensichtlich. Der minimale Wert, als minFlowRate (minDurchsatzrate) bezeichnet, wird auf die Durchsatzrate gesetzt, welche, falls sie gleichmäßig über die verbleibende Wiedergabezeit (playTimeToGo) aufrechterhalten wird, sicherstellt, dass der gesamte geforderte Inhalt verfügbar sein wird, wenn er gebraucht wird – und nicht früher – bis der gesamte Inhalt wiedergegeben ist. Dieser Untergrenze-Wert kann für i ∈ ΣactiveClients berechnet werden durch die Formel:
  • Figure 00270001
  • Entsprechend wird die Durchsatzrate auf der rechten Seite als die just-in-time (JIT) Durchsatzrate (fJIT) bezeichnet.
  • Daher gilt:
  • Figure 00270002
  • Die variablen Randbedingungsgrenzen (d.h. die Werte auf der rechten Seite des Ungleichheitszeichens) der Gleichungen 1 bis 4 und 6 werden auf einer periodischen Grundlage (beispielsweise einmal pro Sekunde) vor der Ausführung der/des CAC-Prozedur und -Optimierers neu ausgewertet. Insbesondere startet der minFlowRate-Wert bei dem Beginn einer Sitzung mit dem Wert, der gleich der Streamingrate ist. Per Konstruktion überschreitet die minFlowRate niemals diesen Anfangswert, solange die Randbedingung 6 erfüllt ist. Tatsächlich impliziert die Randbedingung 5, dass der minFlowRate-Wert eine abnehmende Funktion in Abhängigkeit von der Zeit sein muß, welcher minFlowRate-Wert seinen Wert für eine Zeit halten kann, aber niemals anwächst. Wie aus der Gleichung 6 zu sehen ist, ist die tatsächliche Datenrate des Kanals, die flowRate, immer größer als oder gleich der minFlowRate. Durch den Entwurf und den Vorteil der Tatsache, dass die vorliegende Erfindung Übertragungen schneller als in Echtzeit verwendet, übertrifft sich das System schnell selber und stellt sicher, dass nach anfänglichen Bedingungen die minFlowRate immer gleich oder kleiner als die Echtzeitrate ist und, dass sie fortgesetzt abnimmt. Wie wir sehen werden, nutzt die CAC-Prozedur diese monotone Eigenschaft der minimalen Durchsatzrate über die Zeit.
  • Die Randbedingungen 2, 3 und 4 sind von ähnlicher Art, wobei jede eine obere Grenze von individuellen Kanaldurchsätzen spezifiziert. Während die Grenze für die Randbedingung 2 typischerweise eine Konstante ist, werden die Grenzen der Randbedingungen 3 und 4 über die Zeit variieren. Jedoch ist nur eine der drei Grenzen bei einer gegebenen Zeit wirksam, nämlich diejenige mit dem kleinsten Grenze-Wert, gegeben durch:
  • Figure 00280001
  • Figure 00290001
  • Daher können die Formeln 2, 3 und 4 in eine einzelne Randbedingung zusammengeführt werden, für welche die Grenze bei jeder Abtastung so berechnet wird, dass sie die kleinste Grenze der verbundenen Randbedingungen 2, 3 und 4 ist.
    Figure 00290002
    wobei für alle i ∈ Σactiveclients die maxFlowRate durch Gleichung (7) gegeben ist.
  • Zu jeder Zeit sind individuelle Kanaldurchsätze über einen Bereich wie folgt eingeschränkt:
  • Figure 00290003
  • Wertefunktionen
  • Die zuvor eingeführten Wertefunktionen können wie folgt mathematisch als lineare Funktionen von Kanaldurchsätzen ausgedrückt werden:
  • Optimieren eines Durchsatzes (maximaler Durchsatz)
    Figure 00290004
  • Optimieren von Gebühren (maximale Gebühren)
    Figure 00300001
  • Formulierung des Optimierungsproblems (3)
  • Das Optimierungsproblem, welches in einer Ausführungsform strikt Durchsatz ist und in einem anderen Fall auf Gebühren bezogen ist, kann einfach wie folgt formuliert werden:
    Finde Werte für
    client.lookup(i).channel.flowRate, für alle i ∈ ΣactiveClients
    eingeschränkt durch die Randbedingungen der Ungleichungen 1 bis 5, derart, daß der durch Auswerten des Ausdrucks 10 oder 11 erhaltene Wert ein Maximum annimmt.
  • Beide dieser Problemformulierungen sind Beispiele linearer Programmierung, für welche eine Anzahl von bekannten und allgemein wirksamen rechenbetonten Lösungen existiert. In der linearen Programmierung versucht man eine lineare Kostenfunktion der Variable x zu optimieren. C·X = C1·X1 + ... + Cn·Xn (12)welche einem Satz an Randbedingungen linearer Ungleichungen unterliegt A·x <= b (13)wobei xT = (x1, ..., xn), c = (c1, ..., cn) die Zustandsvariable und der Kostenvektor sind, A eine n-mal-m-Matrix ist, bT = (bi, ...bm) der Vektor der Randbedingungen ist und der Operator "*" für eine Matrix- oder Skalar-Multiplikation steht.
  • Die 3 wurde eingeführt, um die Problemformulierung und die allgemeinen Verfahren des Standes der Technik zu erläutern und ist nicht als ein Element der Erfindung aufgenommen.
  • Das Problem der linearen Programmierung ebenso wie seine Lösung, kann am besten mit der Hilfe von Geometrie verstanden werden. In 3, welche einen zweidimensionalen kartesischen Problemraum zeigt, definieren die Randbedingungsungleichungen (13) eine konvexe Hülle H 310, über welche eine Suche nach einem Optimumwert von x = (x1, x2) sich in einem Bereich bewegen darf. Der Kostenvektor c 350 definiert eine unendliche Familie von Linien gleicher Kosten (Hyperebenen), welche orthogonal zu c liegen. Drei Beispiele solcher Linien sind in L1 360, L2 365 und L3 370 gezeigt, von denen jede stufenweise einen höheren Wert aufweist. Der höchste Wert der Kostenfunktion wird erhalten, indem man entlang c 350 geht, bis man nicht weiter kann, in diesem Beispiel in Richtung des Vertex V4 340 der Hülle H 310. Viele bekannte Verfahren (beispielsweise das Simplexverfahren) arbeiten etwa auf diese Weise, wobei sie die Tatsache nutzen, dass wenigstens ein optimaler Punkt an einem Vertex liegen muß. Insbesondere beginnt der Algorithmus des Simplexverfahrens, indem er einen Vertex (beispielsweise V2 320) findet, und dann entlang einer Abfolge von Vertizes (beispielsweise V3 330, V4 340) voranschreitet, wobei er sich mit jedem Mal verbessert, bis keine weitere Verbesserung möglich ist und der Gipfelpunkt erreicht ist.
  • Sei stattdessen angenommen, dass V3 330 auf L3 370 zusammen mit V4 340 angeordnet sei. Gemäß den Verfahren des Standes der Technik, sind V3 330 und V4 340 die zwei möglichen Lösungen, aber die gleichwertigen Punkte dazwischen sind es nicht. Wie wir bald sehen werden, fällt das Problem der Durchsatzoptimierung (6) in diese Kategorie.
  • Während der Vertex V1 300 nicht in diese Beschreibung einbezogen ist, ist er in 3 zur Vollständigkeit gezeigt.
  • Durchsatzmodulation
  • Verfahren für maximalen Durchsatz
  • Die folgenden Abschnitte beschreiben im Detail zwei Ausführungsformen, um einen Gesamtdatendurchsatz zu optimieren.
  • Übersicht (4-a)
  • Die 4-a zeigt ein Szenario, das zwei Durchsätze einbezieht. Die konvexe Hülle ist in diesem Beispiel durch die Liniensegmente L1, L2, L3, L4 und L5 begrenzt. L6 ist eine Grenze, die in einer anderen Ausführungsform verwendet wird, jedoch verwendet die vorliegende Ausführungsform L5 und nicht L6. Der Durchsatz f2 kann in einem Bereich aus dem Intervall liegen, welches die Liniensegmente L1 von L3 trennt, nämlich f2 MIN und f2 MAX; der Bereich ist als f2 RANGE (f2 BEREICH) bezeichnet. Der Durchsatz f1 kann in einem Bereich aus dem Intervall zwischen den Linien L2 und L4 liegen, nämlich f1 MIN und f1 MAX, und ist als f1 RANGE (f1 BEREICH) bezeichnet. Die Summe der Durchsätze f1 und f2 ist durch die Randbedingungen dazu bestimmt, innerhalb des Liniensegments L5 zu liegen, welches, durch Konstruktion, immer orthogonal zu dem Kostenvektor CF ist. Der Kostenvektor CC ist auch dargestellt, wird aber in einer anderen Ausführungsform verwendet. In der vorliegenden Ausführungsform wird lediglich CF verwendet. In dem gezeigten Beispiel der vorliegenden Ausführungsform ist die Randbedingung des Gesamtdurchsatzes auf 5 gesetzt, und ist daher klein genug, um zu bewirken, dass L5 L3 und L4 schneidet. Dies würde nicht zutreffen, wenn der gewählte Wert 10 gewesen wäre anstelle von 5. Wäre L5 sicher nicht enthalten (out of contention) so wäre die konvexe Hülle stattdessen ein einfaches Rechteck, welches durch L1 bis L4 begrenzt wäre, wodurch es beiden Durchsätzen gestattet wäre, ihre jeweiligen Maxima ohne wechselseitige Beeinflussung anzunehmen. In der Praxis existieren intrinsisch betriebsmäßige Randbedingungen oder es sind betriebsmäßige Randbedingungen von außen vorgegeben, um ein kosteneffektives Teilen von möglicherweise teuren Netzresourcen zu sichern.
  • Unter der Annahme, dass 4 korrekt sei, würden die bekannten Verfahren den Vertex V3-5 auswählen, welcher an dem Schnittpunkt von L3 mit L5 liegt, oder V4-5, welcher an dem Schnittpunkt von L4 mit L5 liegt. Diese Lösungen sind, obwohl sie optimal sind, für die vorliegende Erfindung unerwünscht, weil es ihnen nicht gelingt, die verfügbare Bandbreite über alle Kanäle so gerecht zu verteilen, wie es ein zentral angeordneter innerer Punkt von L5 ermöglichen würde. Aus diesem Grunde werden zwei alternative Optimierungsverfahren gelehrt, welche auf die besonderen Bedürfnisse dieses Problems angepasst sind und eine gerechtere Zuteilung von Bandbreite, welche Randbedingungen unterworfen ist, unter allen Kanälen sichert.
  • Iterative Prozedur (5)
  • Um die Verwendung der gesamten verfügbaren Bandbreite zu optimieren, wird das folgende allgemeine Verfahren verwendet, wobei die Details in 5 gezeigt sind. Dieses Verfahren ist eine Lösung für das in 4-a gezeigte Problem, welches das Optimierungsproblem in dem begrenzten Falle von zwei Durchsätzen f1 und f2 geometrisch darstellt. Die folgende Beschreibung dehnt dieses Problem auf eine beliebige Zahl von Klienten (und daher Durchsätzen) aus und stellt ein Verfahren zur Lösung dieses Optimierungsproblems vor.
  • Bezugnehmend auf 5, werden für jeden Klienten in dem Schritt 500 Werte für die session.maxFlowRate (maximale Durchsatzrate der Sitzung) und session.minFlowRate (minimale Durchsatzrate der Sitzung) gemäß den Ausdrücken der Grenzen und minimalen und maximalen Rahmenbedingungen in Gleichungen 6 bzw. 8 berechnet. Dieser Schritt stimmt mit der Bestimmung von f1min, f1max, f2min und f2max der 4-a überein.
  • Der Unterschied zwischen diesen beiden Ergebnissen ergibt den session.flowRateRange (Durchsatzratenbereich der Sitzung) jedes Klienten an. Daher gilt:
  • Figure 00350001
  • In dem Schritt 505 werden die aktiven Klienten in ansteigender Weise auf der Grundlage ihrer session.flowRateRange sortiert. Wie gezeigt wird, ermöglicht dieser kritische Schritt eine Zuteilung der verbleibenden Serverbandbreite so gleichmäßig wie möglich unter allen aktiven Kanälen, so dass die Anzahl an Kanälen maximiert ist, welche einen Vorteil durch die Verwendung der gesamten Serverbandbreite erzielen. Eine beliebige Zuweisung von verbleibender Bandbreite wird wahrscheinlich den Server sättigen, bevor allen Kanälen zusätzliche Bandbreite zugewiesen wurde, wodurch bestimmte Kanäle auf einer ad-hoc-Grundlage bevorzugt werden. Dieser Schritt entspricht dem Halten der Lösung in den Grenzen des Raumes, der durch die Liniensegmente L1–L5 in 4-a begrenzt ist.
  • In dem Schritt 510 wird die Durchsatzrate jedes Klientenkanals auf den Wert der session.minimumFlowRate gesetzt.
  • Indem dies so durchgeführt wird, ist sichergestellt, dass die Randbedingung für minimalen Durchsatz für jede Sitzung erfüllt ist und, dass die minimale Durchsatzrate eine nicht-zunehmende Funktion der Zeit ist, was kritisch für das richtige Funktionieren der CAC-Prozedur ist. Dieser Bereich des Prozesses stellt auch sicher, dass die Lösung, beginnend von dem Vertex in 4-a, wie er durch den Schnittpunkt von L1 mit L2 definiert ist, allgemein in die Richtung des Vektors CF wandert. Alle Klienten werden auch als unbearbeitet markiert.
  • In dem nächsten Schritt, 520, ist die server.flowRate (Durchsatzrate des Servers) so gesetzt, dass sie die Summe der session.flowRate (Durchsatzrate der Sitzung) von jedem aktiven Klienten ist.
  • Als nächstes wird folgendes über alle Klienten in sortierter Abfolge durch Ausführen der Schritte 530 bis 570 iteriert (während jeder gegebenen Iteration ist der ausgewählte Klient durch seine id gegeben). In dem Schritt 530 prüft ein Auswerten der folgenden Gleichungen eine mögliche Serversättigung:
  • Figure 00370001
  • Falls range (Bereich) größer ist als delta, so impliziert dies, dass der Server in dieser Iteration gesättigt werden kann, indem delta allen unbearbeiteten Klienten zugeteilt wird (Schritt 540).
  • Andererseits impliziert die "Nein"-Verzweigung des Schrittes 530, dass der Server nicht gesättigt ist, und dass der gegenwärtige Klient (gegeben durch id) als erstes gesättigt wird. Entsprechend wird in 550 die Variable delta wie folgt gesetzt:
    delta = range
  • Um diesen Prozeß zurückblickend wieder mit der Geometrie von 4-a zu korrelieren, ist eine Serversättigung angezeigt, wenn die Lösung, welche in der Richtung des Vektors CF gesucht wird, über das Liniensegment L5 hinausgeht.
  • Als Nächstes wird die Durchsatzrate für alle unbearbeiteten Klienten um delta inkrementiert, was bewirkt, dass der Klient id gesättigt wird.
  • In dem Schritt 560 wird die Serverdurchsatzrate entsprechend eingestellt: server.flowRate = server.flowRate + delta·(Anzahl unbearbeiteter Klienten)
  • In dem Schritt 570 wird der durch id gegebene Klient, nunmehr gesättigt, als bearbeitet markiert.
  • Algebraische Prozedur (4-b und 15) durch Interpolation.
  • Bezugnehmend auf 4-b beginnt das in dem vorherigen Abschnitt beschriebene iterative Verfahren seine Suche nach einem Maximum bei dem Vertex Vmin entlang der durch die Linie C1 gezeigten Richtung. Demgegenüber folgt das vorliegende Verfahren dem diagonalen Liniensegment Ldiag des Rechtecks, welches durch die Linien L1 bis L4 begrenzt ist, wobei bei dem Vertex Vmin begonnen wird und bei dem Punkt V3-4 geendet wird.
  • Vorausgesetzt, dass er existiert, ist der Schnittpunkt zwischen Ldiag und L5, bezeichnet durch Vf, auf der selben Grundlage optimal, wie jeder andere Punkt, der auf dem Schnitt von L5 mit dem Rechteck liegt, welches durch L1 bis L4 begrenzt ist, wie zuvor erläutert wurde.
  • Wann immer L5 nicht dieses Rechteck schneidet, ist die optimale Lösung durch den Vertex V3-4 gegeben, an welchem f1 und f2 beide ihre jeweiligen Maxima annehmen.
  • In dem ersten Beispiel können die Koordinaten für den Punkt Vf durch elementare Vektorgeometrie und algebraische Manipulation wie folgt erhalten werden:
    Als Erstes definieren wir einige Abkürzungen.
    fk min stellt die client.lookup(k).session.minimum.flowrate dar
    fk range stellt den client.lookup(k).session.flowraterange dar
    fsvf max stellt die server.maxflowrate dar
  • Wir suchen einen Skalierungsfaktor x, derart, dass die Vektorsumme von (f1 min ... fn min) + x(f1 range ... (fn range) eine Hyperebene gleicher Kosten für die Kapazität c schneidet. Der Schnittpunkt wird durch Lösen der folgenden Gleichung erhalten: (f1 min + ... + fn min) + x(f1 range + ... + fn range) = c
  • Lösen wir nach x auf, so erhalten wir: x = [fsvr max – (f1 min + ... + fn min)]/(f1 range + ... + fn range),wobei fsvr max – (fn min + ... + fn min) die nicht verwendete Bandbreite jenseits der minimalen Zuteilung für jede Sitzung darstellt. Für eine gegebene Sitzung ist die optimale Durchsatzrate gegeben durch:
    fi = fn min + xfi range, falls x < 1,
    oder
    fi = fi min + fi range, falls x > 1
  • Diese Lösung durch Interpolation ist aufgrund der großen Effizienz der Errechnung, und der Tatsache, dass keine Sitzung gesättigt wird (x >= 1), wenn nicht alle Sitzungen gesättigt werden, interessant. Demgegebenüber verursacht das vorherige Verfahren beträchtlich mehr Berechnungsleistung und neigt dazu, die Sitzungen mit der geringsten Reservekapazität zu sättigen.
  • Ein Blockdiagramm für diesen Algorithmus ist in 15 gezeigt. Der Block 1500 bildet das Maximum und Minimum für jeden Durchsatz. Für jeden Durchsatz wird das Minimum von dem Maximum subtrahiert, um den Bereich zu erhalten. Eine verfügbare Bandbreite wird in dem Block 1520 als die Differenz zwischen der aggregierten Durchsatzkapazität und der Summe der Durchsatzminima errechnet. Der Faktor x wird als nächstes in dem Block 1540 berechnet und gegen 1 in dem Block 1650 geprüft. Durchsatzraten für jede Sitzung werden in dem Block 1560 berechnet, falls x kleiner ist als 1, oder 1570 in dem entgegengesetzten Fall.
  • Ein Verfahren für maximale Gebühren
  • Der folgende Abschnitt beschreibt im Detail eine Ausführungsform, um die gesamten geldlichen Gebühren innerhalb des Systems zu optimieren. Das zweite Verfahren ist von seiner Natur her algebraisch und daher sehr effizient.
  • Übersicht (4-a)
  • Wieder bezugnehmend auf 4-a, liegt der Kostenvektor CC orthogonal zur Linie L6, welche die konvexe Hülle an dem Vertex schneidet, welcher durch den Schnitt der Linien L4 und L5 gebildet ist, nämlich V4-5. Dieser Kostenvektor, und der optimale Punkt, den dieser impliziert, bevorzugt den Durchsatz f1 gegenüber dem Durchsatz f2. In diesem Beispiel, weil die Dienstkosten für f1 gleich 2 sind, werden daher die Dienstkosten von 1, die für f2 gesetzt sind, überschritten. Da die Anzahl an Durchsätzen so wächst, dass sie die Anzahl unterschiedlicher Dienstkategorien überschreitet (und damit verbundene Dienstkosten), ist die eindeutige optimale Lösung, welche in 4 für den Fall gezeigt ist, in welchem jeder Durchsatz unterschiedliche Dienstkosten aufweist, nicht länger gültig. Wieder einmal konkurriert eine Mehrzahl von Durchsätzen innerhalb einer Dienstkategorie um Bandbreite, hinsichtlich welcher ein Verfahren eine gleichmäßige Verteilung anstreben sollte. Dieses Verfahren ist von dem vorherigen abgeleitet und optimiert eine Kostenkategorie nach der anderen, beginnend mit der teuersten und endend mit der billigsten, oder wenn die gesamte verfügbare Kapazität zugeteilt wurde.
  • Eine iterative Suchprozedur (6)
  • Seien die Dienstkategorien durch k = 1...N bezeichnet, wobei k auch die Dienstkosten bezeichnet.
  • Sei C1...CN die Aufteilung von SactiveClients, welche alle Klienten mit Dienstkosten k in der Menge Ck anordnet. Die Aufteilungsmengen Ck können sortiert werden, so dass sie die Abfolge (sequence) SeqC = CN...C1 bilden.
  • 6 zeigt das Verfahren zum Implementieren des Verfahrens zum Maximieren der Dienstkosten (Dienstgebühren).
  • Dieses Verfahren ist nahezu identisch zu der iterativen Prozedur, welche verwendet wird, um den Durchsatz zu maximieren. Der Hauptunterschied rührt von der Aufteilung von Klienten entsprechend ihrer Dienstkategorie (Kostenkategorie) her: An am höchsten vergebührten Klienten wird bevorzugt Bandbreite zugeteilt. Dies wird erreicht, indem ein weiteres Iterationsniveau um das Verfahren von 5 herum hinzugefügt wird. Die innere Iteration (Schritte 650 bis 680) funktioniert genauso wie zuvor, mit dem Unterschied, dass ihre Aktionen auf Klienten eingeschränkt sind, welche zu einer bestimmten Dienstkategorie k (d.h. Ck) gehören. Dieser Unterschied gilt auch bei Schritt 640, welcher vor dem Eintreten in die innere Schleife der Bandbreitenzuteilung die Klienten der Kategorie k entsprechend ihrer Durchsatzbereiche sortiert. Die äußere Schleife schreitet an einer sortierten Abfolge von Dienstkategorien SeqC (in Schritt 630 erzeugt) nach unten voran, wobei sie mit der Kategorie beginnt, welche dem Dienstanbieter den größten Ertrag erzeugt. Bei einem gegebenen ziemlich statischen Satz von Dienstkategorien muß diese Sortierung nur durchgeführt werden, wenn die Kategorien einer Änderung unterworfen werden. Die Schritte 670, 675 und 580 sind identisch zu ihren Entsprechungen des Verfahrens in 5 (d.h. 570, 575 und 580).
  • Der Nettoeffekt dieses Verfahrens ist eine bevorzugte Zuteilung von Bandbreite entsprechend einer Dienstkategorie und gleichwertige Behandlung von Klienten innerhalb derselben Dienstkategorie.
  • Eine iterative algebraische Prozedur (16)
  • Das algebraische Verfahren, das verwendet wird, eine Bandbreite zu maximieren (4b und 15) kann als ein Spezialfall einer Kostenoptimierung angesehen werden, in welcher alle Kosten gleich sind. Per Konstruktion erhalten wir ein iteratives algebraisches Verfahren, das viel besser als das vorangehende Verfahren skaliert, wenn alle Sitzungen zu einer gegebenen Kategorie gehören, mit der teuersten Kategorie gestartet wird und mit der preiswertesten Kategorie geendet wird, und die verfügbare Bandbreite nach jedem Schritt in Abfolge aktualisiert wird.
  • Ein Blockdiagramm für diesen Algorithmus ist in 16 gezeigt. Block 1600 legt die Maxima und Minima für jeden Durchsatz fest. Für jeden Durchsatz wird das Minimum von dem Maximum subtrahiert, um den Bereich zu erhalten. In dem Block 1610 wird jedem Sitzungsdurchsatz der minimal erlaubte Wert zugewiesen, welcher Wert standardmäßig angewandt wird, falls die iterative Prozedur keine Bandbreite mehr hat, bevor alle Kategorien berücksichtigt werden können. Der Block 1620 berechnet den Anfangswert für die verfügbare Bandbreite als die Differenz zwischen der aggregierten Durchsatzkapazität und der Summe von Durchsatzminima.
  • Die Durchsatzwerte werden für jede Kostenkategorie in der Reihenfolge abnehmender Kosten in den Blöcken 1640 bis 1675 erhalten. Der Faktor x wird als nächstes in dem Block 1540 berechnet und dann gegen 1 in dem Block 1650 geprüft. Die Durchsatzraten für alle Sitzungen der betrachteten Kategorie werden in dem Block 1660 berechnet, falls x kleiner ist als 1, oder 1670 in dem entgegengesetzten Fall. In dem ersteren Fall gibt es keine weitere Bandbreite, die auf die Sitzungen in der betrachteten Kategorie zugeteilt werden kann.
  • Rufannahmesteuerung (CAC)
  • CAC für maximalen Fluß Übersicht (7 bis 8) Die CAC-Prozedur, welche auf diese Durchsatzoptimierung anwendbar ist, beruht auf dem wesentlichen Schritt, einen neuen Klienten genau dann anzunehmen, wenn die hierdurch zugefügte Last nicht den Dienst für existierende Klienten oder den neuen Klienten beeinträchtigt. Dieser kritische Schritt könnte nicht ohne die enge Integration mit den zuvor beschriebenen Durchsatzmodulationsverfahren der 5, 6, 15 und 16 durchgeführt werden.
  • Entsprechend der vorherigen Erläuterung ist die minimale Durchsatzrate die minimal aufrechterhaltene Durchsatzrate, welche garantiert, dass der verbundene Betrachter nicht Unterbrechungen des Dienstes aufgrund eines Ausfalls von Inhalt von dem Mediaserver ausgesetzt wird. Es folgt, dass, wann immer Daten mit einer Rate geliefert werden, welche eine minimale Durchsatzrate überschreitet, eine Einstellung nach unten in Richtung des minimalen Niveaus aufgenommen werden könnte, wie es erforderlich ist, um einem Neuankömmling eine Bandbreite zu übergeben.
  • Die 7 zeigt einen Durchsatz von Inhalt über einen Kanal während des Ablaufs einer typischen Sitzung, und auch, wie Daten unter der Bedingung eines Echtzeitstreaming D geliefert werden. Die Menge an geliefertem Inhalt ist in beiden Fällen die selbe, aber die Art der Lieferung unterscheidet sich beträchtlich. Eine Sitzung wird zu der Zeit 0 gestartet, wenn das Netz leicht belastet ist, und der Optimierer setzt eine entsprechend hohe Durchsatzrate. Ein anderer Klient tritt an dem Ende des Intervalls 700 auf, was eine Einstellung der Durchsatzrate nach unten über das Intervall B bewirkt, weil die verfügbare Bandbreite zwischen zwei Sitzungen geteilt wird. Während beider dieser Intervalle fällt die minimale Durchsatzrate 720 schnell, weil Daten in den Mediapuffern der Klienten aufgespeichert werden. An dem Ende des Intervalls B erfordert ein massiver Zufluß von Klienten, dass der Durchsatz auf die minimale Durchsatzrate fallengelassen wird, welche nun wesentlich unterhalb der Streamingrate D liegt, und gehalten wird, bis alle Daten an dem Ende des Intervalls C geliefert sind. Anzumerken ist, dass die minimale Durchsatzrate, gezeigt als Element 720, monoton über die Zeit abnimmt.
  • Die Server-Freiraumkapazität (server swing capacity) ist als die Differenz zwischen der maximalen Kapazität des Servers und den gesamten minimalen Durchsatzraten für alle aktiven Klienten definiert. Daher gilt:
  • Figure 00460001
  • Bei der gegebenen monoton abnehmenden Natur der minimalen Durchsatzraten einer Sitzung kann die Server-Freiraumkapazität leicht als eine monoton zunehmende Funktion in Abhängigkeit der Zeit über die Intervalle angesehen werden, welche die Klientenzulassungen trennen, an welchem Punkt sie einem Aussetzen (drop) unterliegt, wenn eine neue Last aufgenommen wird. Dieses ganz wichtige Merkmal impliziert das Folgende:
    Jedem Klienten, der auf der Grundlage des gegenwärtigen wertes der Freiraumkapazität zu einem Dienst zugelassen wurde, ist garantiert, über den gesamten zukünftigen Verlauf der Sitzung über eine ausreichende Bandbreite zu verfügen.
  • 8 zeigt die Server-Freiraumkapazität 800 während des Verlaufs der in 7 gezeigten Sitzungen. Die Freiraumkapazität wächst schnell über den Intervallen A und B an, wenn Daten mit hohen Durchsatzraten über das Netz geliefert werden. Sie hält sich stetig über das Intervall C, wenn alle Kanäle Durchsatz bei ihrer minimalen Rate haben und springt dann an dem Ende von C, bevor sie ihren monotonen Anstieg wieder aufnimmt.
  • Prozedur (9)
  • In dieser Prozedur, welche auf einer periodischen Grundlage ausgeführt wird, werden in einer Warteschlange eingereihte Klienten, welche auf Bandbreite warten, in FIFO-Reihenfolge durchsucht. Für jeden wird die geforderte Bandbreite gemäß der vorherigen Inhaltsauswahl des Klienten berechnet. Falls die verfügbare Freiraumkapazität (reduziert um einen Sicherheitsvorhalt) den geforderten Betrag überschreitet, dann wird der Klient aktiviert und die Freiraumkapazität entsprechend eingestellt. Andernfalls werden zwei mögliche Fälle betrachtet: 1) in der FirstFit-(ErsterPasst-)Ausführungsform setzt die Prozedur das Durchsuchen der Klienten bis zum Ende der Warteschlange fort und aktiviert die Klienten, deren Anforderungen erfüllt werden können; 2) In der FIFO-Ausführungsform endet die Prozedur mit dem ersten Kandidatenklienten, dessen Anforderungen nicht erfüllt werden können.
  • In Schritt 900 wird die verfügbare Server-Freiraumkapazität entsprechend der folgenden Formel ausgewertet:
  • Figure 00470001
  • Die Bandbreitenanforderung für den Klienten id in dem Schritt 920 wird wie folgt erhalten:
  • Figure 00480001
  • Das in dem Schritt 940 ausgewertete Prädikat ist gegeben durch den Ausdruck:
  • Figure 00480002
  • In dem Schritt 950 bedingt die Klientaktivierung die Zuteilung einer Sitzung und eines Kanals und das Einfügen in den Satz von aktiven Klienten, welche für eine Bandbreitenzuteilung durch den Modulator für optimalen Durchsatz geeignet sind.
  • In dem Schritt 960 verringert sich die Freiraumkapazität um den Betrag, welcher für den aktivierten Klienten reserviert ist:
  • Figure 00480003
  • Antworten auf Variationen der Netzkapazität (maximaler Durchsatz)
  • In der CAC-Prozedur für maximalen Durchsatz wurde ein Sicherheitsvorhalt eingeführt, nämlich server.cac_flowSafetyMargin, um das Mittel bereitzustellen, um sicherzustellen, dass die Server-Freiraumkapazität niemals unter einen minimalen Grenzwert fällt.
  • Entsprechend dieser Prozedur ist die folgende Ungleichung immer erfüllt:
  • Figure 00490001
  • In der vorangegangenen Erläuterung stellte eine Server-Freiraumkapazität die Grundlage bereit, um zu bestimmen, ob oder ob nicht einem voraussichtlichen Klienten Bandbreite zugeteilt werden sollte.
  • Indem server.cac_flowSafetyMargin in Reserve gehalten wird, erzwingt der CAC-Algorithmus eine Lieferung von Inhalt mit schnelleren als Echtzeitraten unter den akzeptierten Klienten, sogar unter schwerster Last. Dieser Nettoeffekt dient dazu, nach oben gerichteten Druck auf die Pufferniveaus auf der Seite der Klienten auszuüben, so dass ein fortlaufendes Ansammeln von Inhalt sowie ein störungsfreies Betrachtungserlebnis befördert wird, wenn eine Sitzung erst einmal begonnen hat.
  • In einer anderen Ausführungsform kann die Server-Freiraumkapazität auch als das Spezifizieren des Maximumbetrags interpretiert werden, um welchen die Randbedingung der server.maxFlowRate fallengelassen werden kann, ohne den Dienst zu beeinträchtigen, falls solch eine Einstellung notwendig sein sollte, beispielsweise, aufgrund eines Eintretens von übermäßigem Netzverkehr, welcher den verfügbaren Betrag für Multimedia-Dienste verringert. Der Parameter server.cac_flowSafetyMargin kann daher so eingestellt werden, dass er eine minimale Kapazität garantiert, um die Randbedingung des maximalen Serverdurchsatzes in Antwort auf unerwartete Lastwechsel festzuhalten, welche die Fähigkeit des Servers beeinträchtigen, seine existierenden Klienten sowie neue Klienten zu bedienen.
  • Vorwegnehmende geplante Variationen der Netzkapazität (maximaler Durchsatz).
  • Überblick (10)
  • 10 zeigt, wie die Randbedingung des maximalen Durchsatzes entsprechend der Tageszeit, Wochentag usw., in Erwartung von zeitveränderlichen Verkehrsdurchsatzniveaus variieren darf, welche aus vergangener Erfahrung, Verkehrsdurchsatzmodellen etc. hochgerechnet werden. Es ist zu sehen, dass die maximale Durchsatzrate 1000 auf der Grundlage der Tageszeit variiert. In der Praxis kann ein Definieren der rechten Seite der Ungleichheitsrandbedingung 1 als ein zeitabhängiger Ausdruck solche zeitvariierenden Kapazitäten vorgeben. Entsprechend der vorangegangenen Beschreibung wird der Optimierer, welcher auf einer periodischen Grundlage ausgeführt wird, automatisch neue Durchsatzniveaus für jede aktive Sitzung suchen, wenn die Randbedingung variiert. Es besteht jedoch keine Garantie, dass ein akzeptabler Betriebspunkt für alle Sitzungen gefunden wird (d.h., einer, welcher die minimalen und maximalen Randbedingungen hinsichtlich des Sitzungskanaldurchflusses berücksichtigt). Ein derartiges Beispiel ist ein Fall, in welchem der Server bis zur Grenze belastet ist und die gesamte Kapazität über den erwähnten Sicherheitsvorhalt hinaus verringert ist. Sollte solch eine Situation entstehen, wird der einzige Ausweg möglicherweise die Beendigung einer Anzahl von festgelegten Sitzungen sein (d.h. Entlastung).
  • Das Ziel ist, Dienstunterbrechungen dieser Art zu eliminieren, indem es der CAC-Prozedur gestattet ist, in die Zukunft zu schauen und neue Klienten nur zu akzeptieren, wenn diese aufgenommen werden können, ohne einen Dienst bei zuvor vorweggenommenen Änderungen einer verfügbaren Netzkapazität zu beeinträchtigen. Die folgende CAC-Prozedur verallgemeinert die vorangegangene: bevor ein Klient akzeptiert wird, wird die Prüfung der Freiraumkapazität über eine Abfolge von Zeitsegmenten wiederholt, welche die vorgeschlagene Betrachtungsperiode abdecken.
  • Definitionen
    • Sei:
  • Figure 00510001
  • Sei server.maxFlowRate(t) die Serverdurchsatzkapazität als eine Funktion der Zeit, wie in 10 beispielhaft dargestellt.
  • Sei SeqT(t_now) = kommende Abfolge von zukünftigen Zeiten, geführt durch t_now, wenn server.maxFlowRate(t) eine Stufenänderung erfährt. Beispielsweise liest sich diese Abfolge bei 9:15 in 10 wie folgt: 9:15, 9:30, 11:30, 13:30, 6:30, 7:30.
  • Die Server-Freiraumkapazität wird bei einer zukünftigen Zeit t entsprechend der Kapazität und der ungünstigsten Klientendurchsätze zu der Zeit t berechnet.
  • Figure 00520001
  • Es sei angemerkt, dass der ungünstigste Klientendurchsatz zur Zeit t in Ausdrücken der gegenwärtigen minimalen Durchsatzraten ausgedrückt ist, welche nicht über der Zeit zunehmen können, sondern konstant bleiben könnten. Schließlich wird wie folgt ein Prädikat definiert, welches prüft, ob ein möglicher Kunde bewirken wird, dass die Freiraumkapazität zu einer Zeit t überschritten wird:
  • Figure 00520002
  • Figure 00530001
  • Prozedur (11)
  • Diese Prozedur ist eine Anpassung der ersten, welche erweitert wurde, die Freiraumkapazität bei Zeiten in der Zukunft zu betrachten, wenn die Kapazität geplante Änderungen erfährt. Bevor ein Klient angenommen wird, wird seine minimale Bandbreitenanforderung (welche per Konstruktion des Durchsatzmodulators niemals über die Zeit zunehmen wird) gegen eine voraussichtliche Freiraumkapazität zu Zeitpunkten geprüft, wenn die gesamte verfügbare Kapazität geplanten Stufenänderungen ausgesetzt ist, vorausgesetzt, dass diese Zeiten innerhalb der vorgeschlagenen Periode einer Inhaltsbetrachtung fallen. Ein Kandidat wird nur dann aktiviert, wenn alle Prüfungen erfolgreich sind.
  • Der Schritt 1100 bildet eine Abfolge von Zeitwerten (SeqT), an welchen geplant ist, dass stufenförmige Kapazitätsänderungen auftreten. Das erste Element dieser Abfolge ist t_now, welches die Gegenwart darstellt.
  • Jenseits von Schritt 1100 wird die Warteschlange der wartenden Klienten in FIFO-Reihenfolge durchsucht, was bei jeder Iteration einen durch id bezeichneten Kandidaten ergibt.
  • Die Bandbreitenanforderung für den Klienten id in dem Schritt 1120 wird wie folgt erhalten:
  • Figure 00540001
  • Die günstigste Endzeit für Inhaltsdurchsatz an id wird entsprechend dem ausgewählten Inhalt erhalten, wie folgt:
  • Figure 00540002
  • Die Schritte 1130 bis 1150 werden innerhalb einer Iteration für jeden Zeitpunkt in SeqT ausgeführt, welche zwischen t_now und t_end fallen. Diese Iteration wird bei dem Schritt 1130 beendet, falls t das betrachtete Zeitfenster überschreitet, oder in dem Schritt 1150, falls die Zufuhr von geplanten Kapazitätsänderungen erschöpft ist.
  • Für jeden Zeitwert vergleicht der Schritt 1140 die angeforderte Bandbreite mit der voraussichtlichen Freiraumkapazität.
  • Die voraussichtliche Freiraumkapazität zur Zeit t ist:
  • Figure 00540003
  • Es ist zu beachten, dass nur aktive Klienten, deren t_end-Zeiten nach t auftreten, in der Summe der minimalen Durchsatzraten betrachtet werden.
  • Der Prädikatausdruck, welcher in dem Schritt 1140 zur Zeit t verwendet wird, ist daher:
  • Figure 00550001
  • Der Schritt 1160 führt dieselben Aktionen wie der Schritt 660 in dem vorangehenden CAC-Flußdiagramm durch.
  • Der erste CAC-Prozeß ist ein Spezialfall des vorliegenden, worin die Menge der Stufenänderungszeiten der server.maxFlowRate leer ist (d.h., server.maxFlowRate ist konstant) und SeqT(t_now) == t_now.
  • Bei dem Vorbereiten von SeqT (t_now) braucht man nur zukünftige Zeiten zu berücksichtigen, welche verlaufen werden, bevor der längste mögliche Inhalt wiedergegeben ist, wenn bei t_now gestartet wird. Um Probleme, die mit einem Rollover (bei Mitternacht, Jahr 2000 usw.) verbunden sind, zu umgehen, wird die Zeit am besten als ein monoton zunehmender Wert ausgedrückt (beispielsweise Sekunden seit 1. Januar 1990).
  • CAC für maximale Gebühren
  • Übersicht (13)
  • Zuvor wurde ein Verfahren zur Durchsatzmodulation vorgestellt, welches die Gebühren an Klienten mit aktiven Sitzungen maximiert. Die zuvor vorgestellte CAC-Ausführungsform war nicht ausreichend, weil sie nicht die Dienstkosten als eine Grundlage für das Annehmen einer Verbindung betrachtete. Als ein Ergebnis könnte sie höher zahlende Kunden abweisen, während sie niedriger zahlenden einen Dienst gewähren könnte, wodurch sie den Zweck für diese besondere Ausführungsform völlig sinnlos machen würde. Daher ist eine andere Ausführungsform definiert, welche die folgenden Merkmale bereitstellt:
    • 1. Wartende Klienten werden in der Reihenfolge ihrer jeweiligen Dienstkategorien bedient, höher zahlende Klienten zuerst.
    • 2. Einmal akzeptiert, wird einem Klienten garantiert, einen akzeptablen Dienst unabhängig von seiner Dienstkategorie zu empfangen.
    • 3. Unter Bedingungen schwerer Last, ist es wahrscheinlicher, dass höher zahlende Kunden akzeptiert werden als weniger zahlende.
    • 4. Weniger zahlenden Kunden wird nicht der Dienst verweigert, wenn höher Zahlende ein Übermaß genießen.
    • 5. Verfügbare Bandbreite wird nicht unnötigerweise verworfen, während Klienten ein Dienst verweigert wird.
  • Das erste Ziel wird leicht erreicht, indem die Klientenwarteschlange in so viele Bänder geteilt wird, wie Dienstkategorien vorliegen, was zu einer bandmäßig strukturierten Warteschlange führt. Bänder sind innerhalb der Warteschlange gemäß ihrer Dienstkategorien sortiert, wobei die teuerste Kategorie vorne ist. Wenn mögliche Klienten eintreffen und ihre Auswahl treffen, werden sie in ihr jeweiliges Warteschlangenband entsprechend ihrer Dienstkategorie platziert (was auf einer Vertragsbasis geschehen kann, entsprechend einer Inhaltsauswahl, etc.).
  • Unser zweites Ziel wird erfüllt, indem eine Prozedur verwendet wird, welche nach dem Muster der zuvor vorgestellten aufgebaut ist und die selbe Garantie anbietet. Hinsichtlich unserer dritten und vierten Ziele schlagen wir vor, die gesamte verfügbare Bandbreite in so viele Streifen zu teilen, wie es Dienstkategorien gibt. Wie in 12 gezeigt, sind zwei Dienstkategorien gezeigt, Premium und Basis, von denen jede damit verbundene Dienstkosten mit sich bringt. Ein voraussichtlicher Klient wird nur akzeptiert, falls eine hinreichende Freiraumkapazität innerhalb seiner gegebenen Dienstkategorie verfügbar ist. Die Freiraumkapazität für eine gegebene Kategorie ist gegeben durch das Kleinere von 1) der Differenz zwischen ihrer maximalen Untergrenze-Durchsatzrate (entsprechend dem oberen des Streifens für die Dienstkategorie) und der Summe der minimalen Raten aller aktiven Sitzungen in ihrer Kategorie oder darunter, und 2) verfügbarer Freiraumkapazität insgesamt. Schließlich wird unser fünftes Ziel erfüllt, indem es dem Durchsatzoptimierer gestattet ist, frei entsprechend seiner betriebsmäßigen Randbedingungen zu funktionieren. Die vorgegebenen Obergrenzen hinsichtlich einer Rufannahme gemäß Kategorie beziehen sich auf minimale Durchsatzraten, welche eher tatsächlichen Durchsatzraten eine Untergrenze vorgeben. Beispielsweise könnten Basis-Klienten bei der Abwesenheit von Premium-Kunden wohl die gesamte verfügbare Bandbreite 300 konsumieren, können jedoch auf ihre Untergrenze-Durchsatzraten (welche zusammen in diesem Falle 200 nicht überschreiten können) zu einer Zeit zurückgedrosselt werden, wenn ein Premium-Kunde plötzlich einen Dienst anfordern sollte. Demgegenüber könnten Premium-Kunden die gesamte 300 Bandbreite konsumieren. Sobald weniger zahlende Kunden erscheinen, würden sie in dem Maße zugelassen, in welchem ihr Kontingent an minimalem Durchsatz nicht überschritten wird (d.h. 200) und der Verfügbarkeit der Freiraumkapazität in dem System.
  • Prozedur (13)
  • Die vorliegende Prozedur erfordert eine Anzahl von behelfsmäßigen Definitionen, welche folgen: Es seien die Dienstkategorien durch k = 1...N bezeichnet, wobei k auch die Dienstkosten bezeichnet.
  • Es sei server.maxMinFlowRate [k–1] das Obere des Streifens für die Dienstkategorie k. Es sei angemerkt, dass server.maxMinFlowRate [N–1] gleich server.maxFlowRate ist.
  • Es sei Sk die Menge der Indizes der aktiven Klienten mit einer Dienstkategorie, die gleich oder kleiner ist als k. Es sei angemerkt, dass S1 in S2 enthalten ist, S2 in S3 enthalten ist, und so fort, und dass SN = SactiveClients ist.
  • Möge swingCapacity(k) eine verfügbare Freiraumkapazität für die Dienstkategorie k bezeichnen. Per Konstruktion gilt:
  • Figure 00590001
  • Bezugnehmend auf 13 wird dieses Verfahren für CAC verwendet, wenn Mehrfachratentarife wirksam sind, und ein Wunsch besteht, wirtschaftliche Gewinne für den Dienstanbieter zu maximieren, während er allen einen akzeptablen Dienst anbietet.
  • Alle wartenden Klienten werden in FIFO-Abfolge durchsucht. Die in den Schritten 1320 und 1360 ausgeführten Aktionen sind identisch zu denen, welche in Verbindung mit früheren CAC-Flußdiagrammen beschrieben wurden.
  • Der Schritt 1340 wertet einen Prädikatausdruck aus, welcher prüft, ob die angeforderte Bandbreite aufgenommen werden kann, ohne das Kleinere von 1) für die Klientendienstkategorie verfügbare Freiraumkapazität, und 2) gesamte verfügbare Freiraumkapazität über alle Dienstkategorien zu überschreiten. Der letztere Faktor könnte bestimmend sein, falls die gesamte verfügbare Bandbreite viel zahlenden Kunden zugeteilt wäre, wobei weniger zahlende, wie z.B. der vorgeschlagene Klient, in der Lage belassen wären, nicht ihre unerfüllten Kontingente nutzen zu können.
  • Laßt uns annehmen, dass die Kandidatenklienten-id zu der Ratenkategorie k gehört.
  • Wir definieren die in der Ratenkategorie k verfügbare Freiraumkapazität als:
  • Figure 00600001
  • Der durch den Schritt 1340 aufgerufene Prädikatausdruck kann nun wie folgt geschrieben werden:
  • Figure 00600002
  • Dieser Algorithmus arbeitet in einer Warteschlange angeordnete Klienten in einer bandmäßigen Abfolge ab und innerhalb jedes Bandes in FIFO-Reihenfolge. Falls das Prädikat wahr ergibt, wird der Klient aktiviert. Andernfalls werden zwei mögliche Fälle betrachtet: 1) in der FirstFit-Ausführungsform fährt die Prozedur fort, Klienten bis zu dem Ende der bandstrukturierten Warteschlange zu durchsuchen, wobei Klienten aktiviert werden, deren Anforderungen erfüllt werden können; 2) in der FIFO-Ausführungsform endet die Prozedur mit dem ersten Kandidatenklienten, dessen Anforderungen nicht erfüllt werden können. Viele andere Abwandlungen von diesen zwei Ausführungsformen können auch betrachtet werden.
  • Vorwegnehmen geplanter Schwankungen der Netzkapazität (maximale Gebühren)
  • Überblick
  • Die Prozedur, welche auf die Optimierung von Liefergebühren (delivery charges) anwendbar ist, wird erhalten, indem Elemente von dem in 13 gezeigten CAC-Verfahren in das in 11 gezeigte Verfahren hineingemischt werden, was ohne Änderung anwendbar ist. Um zu verstehen, wie dies funktionieren könnte, mag es nützlich sein, eine Version von 10 darzustellen, wie sie entlang ihrer Länge in der Weise wie 8 in Streifen gegliedert ist. Wenn das maximale Durchsatzniveau eine Stufenänderung erfährt, so wird dies auch mit den Breiten ihrer bildenden Streifen in gleicher Proportion geschehen.
  • Prozedur
  • Wie zuvor erwähnt, wird das CAC-Verfahren (11) auf diesen Umstand auch angewandt, vorausgesetzt, dass wir die Definition von zwei Routinen, (17) und (18), verändern, auf welchen die Prozedur beruht, was (20) und (21) ergibt und die bandstrukturierte Warteschlangenorganisation übernehmen, welche in dem vorangegangenen Abschnitt erläutert wurde.
  • Die Server-Freiraumkapazität zu einer zukünftigen Zeit t wird entsprechend der Kapazität und ungünstigsten Klientendurchsätzen zur Zeit t berechnet.
  • Figure 00620001
  • Schließlich definieren wir wie folgt ein Prädikat, welches prüft, ob ein voraussichtlicher Kunde bewirken wird, dass die Freiraumkapazität zu einer Zeit t überschritten wird:
  • Figure 00620002
  • Figure 00630001
  • Systembeschreibung
  • Bezugnehmend auf 14 ist ein Blockdiagramm gezeigt, welches eine bevorzugte Ausführungsform für ein System zeigt, welches die hierin dargestellten Verfahren implementiert.
  • Block 1485 zeigt eine Mehrzahl von netzbasierten Klientencomputern, welche während des Verlaufs einer Sitzung Daten von einem Server empfangen. Jede Klientensitzung hat einen zugeordneten Sitzungsblock 1435 innerhalb des Servers mittels dessen eine Durchsatzrate von Inhalt von dem Klienten zu dem Server bewirkt und gemäß einem gegebenen Durchsatzratensollwert reguliert wird. Der Durchsatzoptimierer 1430 verwaltet die Bandbreitenverwendung über alle Sitzungen, welche durch die Systemrufannahmesteuerung (CAC) und Bandbreitenrufzulassungskontrollblöcke zugelassen wurden, welche mit 1400 bzw. 1420 bezeichnet sind. Insbesondere moduliert der Durchsatzoptimierer 1430 den Durchsatzratensollwert jeder aktiven Sitzung, um so einen aggregierten Durchsatz, oder allgemeiner, Kosten zu optimieren.
  • Rufannahmekontrolle (Call Admission Control)
  • Wann immer ein Klient einen Server zur Anforderung von Dienst kontaktiert, muß der Server bestimmen, ob oder ob nicht er den Klienten zulässt. Diese zulassende Funktion wird in zwei getrennten Phasen durchgeführt. Der Systemrufzulassungssteuerungsblock 1400 betrachtet, ob oder ob nicht hinreichende interne Resourcen vorliegen, um die Anforderung zu unterstützen. Diesbezüglich schätzt die System CAC 1400 die Erfordernisse des voraussichtlichen Klienten bezüglich einer Menge von begrenzten Systemresourcen ab, wie beispielsweise I/O-Bandbreite, Cache-Speicher, offene Dateien, Threads, usw. Eine Anforderung wird verneint, falls eine angeforderte Resource nicht erhalten werden kann. In dem umgekehrten Falle, wird die Anforderung an die Bandbreiten-CAC weitergereicht, welche prüft, ob der Klient passt und den Klienten entsprechend zulässt oder zurückweist. Die Freiraumkapazität wird durch den Durchsatzoptimierer 1430 auf einer periodischen Grundlage entsprechend der Gleichungen (14) und (17) wie passend berechnet. Die verwaltete Bandbreite muß die wahre Kapazität des verbundenen Netzes sowie der dorthin führenden Adapter wiedergeben. Dieser Parameter sollte nicht beliebig hoch gesetzt werden, um die Zurückweisung von Klientenanforderungen zu verhindern. Tut man dies, so wird verursacht, dass das System Rufe zulässt, welche nicht angemessen behandelt werden können, wodurch die Qualität des Betrachtungserlebnisses verringert wird.
  • Nachdem ein Klient zugelassen wurde, erzeugt der Block 1430 einen Klientensitzungsblock 1435, welcher dann während ihrer Startphase mit seiner im Klienten vorliegenden Entsprechung einen Dialog aufnimmt, 1480. Danach übernimmt der Durchsatzoptimierer 1430 die Steuerung und moduliert den Durchsatz über die Sitzung, bis entweder der gesamte Inhalt geliefert ist, oder bis eine Störung der Lieferung erfasst ist, oder eine Anzahl von VCR-ähnlichen Streamsteuerereignissen eingreifen (beispielsweise Pause, Rücklauf, schneller Vorlauf).
  • Server- und Klientensitzungskontrollblöcke
  • Der Datentransportkanal 1450 ist verantwortlich für das Transportieren von Datenpaketen, welche von dem Durchsatzregulierer 1440 innerhalb des Servers zu der Peer-Entität (Entsprechungsentität) 1460 innerhalb des ersteren entstehen. Der Kommunikationsmodus zwischen den Peer-Entitäten kann verbindungsorientiert (beispielsweise TCP, welches einen Bytestream in Reihenfolge ohne Verdopplung oder Verluste liefert) oder Datagramm-orientiert (beispielsweise UDP) sein. Ein Best-effort-Datagrammdienst (sich größte Mühe gebend) wird typischerweise mit Quittungen verbessert, um eine rasche Wiederherstellung von gelegentlichen Paketverlusten, Lieferung außerhalb der Reihenfolge und Verdopplung zu ermöglichen.
  • Die gleichrangigen Sitzungskontrollkanäle 1445 und 1446 gestatten es, dass Konfigurations- und Statusdaten, zusammen mit verschiedenen Kommandos, von dem Klienten zu dem Server gesendet werden und umgekehrt. Für diesen Zweck wird typischerweise ein zuverlässiger verbindungsorientierter Transportdienst verwendet (beispielsweise TCP). Daten sowie Kommandos werden über diesen Kanal in dem Dienst anderer Entitäten innerhalb der Klienten oder des Servers gemultiplext. Daher könnte ein Datagramm-orientierter Datentransportkanal 1460 innerhalb eines Klienten 1485 den Sitzungssteuerungskanal verwenden, um selektive Quittungen zu seinem gleichrangigen Gegenpart in dem Server zu befördern. Ähnlich sendet der Durchsatzmesser 1465 innerhalb des Klienten 1485 die gemessene Durchsatzrate zu dem verbundenen Durchsatzregulierer 1440 innerhalb des Servers.
  • Der Durchsatzregulator 1440 erhält an dem aktuellen Versatz in der Inhaltsdatei Inhaltsdaten von einem Cache oder einer Festplatte, welche er als Pakete an den Datenübertragungskanal 1450 sendet. Die Größe und/oder Schrittsteuerung der Pakete wird durch den Durchsatzregulator 1440 bestimmt, um den Durchsatzratensollwert zu erreichen, welcher durch den Durchsatzoptimierer 1430 vorgegeben ist. Der Durchsatzregulierer 1440 ist auch für das Bestimmen der Kanaldurchsatzkapazität an den Klienten verantwortlich, welche das kleinste von einem konfigurierten Wert, der von dem Klienten erhalten wird, und einem gemessenen Wert ist. Diesbezüglich könnte der Durchsatzregulierer 1440 während der Startphase Inhaltsdatenpakete an den Durchsatzmesser des Klienten 1475 in einer Reihe von Paketzügen mit stufenweise höheren Spitzendurchsatzraten senden, welche mit der konfigurierten maximalen Durchsatzrate enden, falls vorhanden. Die höchste gemessene Durchsatzrate, die von dem Durchsatzmesser des Klienten 1475 berichtet wurde, wird als die Durchsatzratenkapazität akzeptiert, welche für die Verwendung durch den Durchsatzoptimierer 1430 bekanntgemacht wird. Danach wird der Durchsatzregulierer 1440 den Durchsatzratensollwert mit den durch den Durchsatzmesser 1465 berichteten Durchsatzraten vergleichen und die Kapazität wie benötigt herabstufen, falls die gemessene Durchsatzrate konsistent unter die angeforderte Durchsatzrate fallen sollte. Wann immer solch eine Herabstufung auftritt, wird der Durchsatzregulierer 1440 auf eine nachfolgende Entspannung einer vorübergehenden Einschränkung prüfen, indem er die zuvor erwähnte Reihe von Paketzügen verwendet, in welcher die Spitzendurchsatzrate von Paketen die gelieferte Durchsatzrate überschreitet.
  • Der Pufferverwalter 1470 akzeptiert Daten von dem Durchsatzmesser 1465, welche Daten gehalten werden, bis sie verbraucht sind oder dem Inhaltsverbraucher 1480 überreicht wurden. Der Puffer wird typischerweise als ein Ringpuffer in einem Speicher oder einer Platte implementiert sein. Der Schreibkursor wird dem Lesekursor um nicht weniger als ein spezifizierbares Zeitintervall hinterhereilen, um so einen Rücklauf in einem akzeptablen Bereich zu gestatten, ohne von dem Server selektives Datenneuauffinden anzufordern.
  • Durchsatzoptimierer 1430
  • Der Durchsatzoptimierer 1430 übernimmt die Steuerung über eine Sitzung, sobald er gestartet wurde und seine Kanalkapazität bestimmt wurde. Danach moduliert er den Durchsatzratensollwert jeder Sitzung, um so einen aggregierten Durchsatz oder Gebühren über alle aktiven Sitzungen zu optimieren, wobei er einer Auswahl von min/max-Randbedingungen hinsichtlich Sitzungsdurchsätzen und einer Maximumrandbedingung hinsichtlich eines aggregierten Sitzungsdurchsatzes unterliegt, wie zuvor erläutert.
  • Der Durchsatzoptimierer 1430 fährt fort, den Sitzungsdurchsatz zu modulieren, bis der gesamte Inhalt geliefert wurde, oder eine Anzahl von Sitzungsanomalien eingreifen, wie folgt:
    Eine herabgestufte Sitzungsdurchsatzkapazität fällt unter die minimale Sitzungsdurchsatzrate. Als eine Lösung, welche einbezieht, dass der Kanal nicht existiert wird die Sitzung durch den Optimierer 1430 ausgesetzt. Der Benutzer ist gezwungen, sich für eine Neuzulassung anzumelden, mit der Option, eine langsamere als Echtzeitlieferung bei der vorliegenden Kodierrate zu akzeptieren, oder eine verschlechterte Betrachtung bei einer reduzierten Kodierrate zu akzeptieren, welche besser an die gegenwärtig verfügbare Bandbreite angepasst ist.
  • Ein Pause-VCR-Kommando von dem Klienten wird empfangen. Durchsatz zu dem Klienten kann fortgesetzt werden, bis der klientenseitige Puffer voll ist, wonach der Durchsatz auf null fällt. Die Sitzung wird dauerhaft ausgesetzt, falls die Pause zu lange dauern sollte. Bis zu dieser Zeit ist der CAC- Sicherheitsvorhalt zeitweise durch die JIT (Just-In-Time)-Durchsatzrate der pausierenden Sitzung vergrößert. Auf diese Weise kann die Sitzung ohne das Erfordernis einer Neuzulassung wiederaufgenommen werden, und die JIT-Bandbreite ist aktuellen Sitzungen verfügbar, solange die Pause anhält.
  • Ein VCR-Vorwärts-Sprung-Kommando von dem Klienten wird empfangen. Diese Aktion ist problematisch, weil sie bewirkt, dass die Just-In-Time-Durchsatzrate (berechnet bei dem neuen Vorwärts-Versatz) anwächst, was die Annahmen des CAC-Algorithmus verletzt. Es muß angemerkt werden, dass diese Verletzung sogar dann auftreten wird, wenn der Inhalt, der gesucht wird, bereits dem klientseitigen Puffer geliefert wurde. Eine mögliche Richtlinie ist, den Klienten zu zwingen, eine Neuzulassung, mit einem entsprechend modifizierten Pufferniveau, bei dem Vorwärts-Versatz anzumelden.
  • Ein VCR-Sprung-Rückwärts(Rückwärtssprung)-kommando wird empfangen. Diese Aktion kann, wie zuvor erläutert, das Erfordernis mit sich bringen, Inhalt neu zu versenden. Die Just-In-Time-Durchsatzrate wird hinsichtlich der neuen Position und dem eingestellten Pufferinhalt abnehmen.
  • Einstellbare Minimumrandbedingung
  • Eine parametrisierte Familie von Minimumdurchsatzrandbedingungen kann wie folgt definiert werden:
  • Figure 00700001
  • Diese Familie konvergiert bei fk(t) >= fk JIT(t), wenn β sich null nähert. Ein β-Wert von 0,1 beispielsweise stellt eine minimale Durchsatzrate sicher, welche die JIT-Durchsatzrate um 10 % überschreitet. Daher erzwingen Nicht-Nullwerte von β eine frühe Lieferung von Inhalt an einen Mediapuffer des Wiedergabegeräts, was vorteilhafte Wirkungen auf das Betrachtungserlebnis hat.
  • Alternative Rufannahmesteuerung
  • Der herkömmliche CAC-Algorithmus vergleicht die Durchsatzratenanforderung eines möglichen Klienten mit der ungenutzten Bandbreite (erhalten durch Subtrahieren des aggregierten Durchsatzziels von der Serverdurchsatzkapazität) und bewilligt einen Dienst, falls die ungenutzte Bandbreite nicht überschritten wird. Diese Prozedur kann zusammenbrechen, wenn der Optimierer bewirkt, dass, wenn er es kann, die gesamte verfügbare Bandbreite verwendet wird, wodurch in dem besten Fall die ungenutzte Bandbreite auf 0 reduziert wird, sogar wenn ein neuer Klient mit einem sicheren Reserve-Vorhalt aufgenommen werden könnte.
  • Gleichwohl kann eine einfache Variation dieser Idee verwendet werden. Verfügbare Bandbreiten können als die Differenz zwischen einer Serverdurchsatzkapazität und der Summe der minimalen Durchsatzraten für jede Sitzung definiert werden, welche gemäß (22) wie folgt berechnet werden:
  • Figure 00710001
  • Der Dienst wird bewilligt, falls die berechnete minimale Durchsatzrate des voraussichtlichen Klienten kleiner ist als die verfügbare Bandbreite, sogar wenn die ungenutzte Bandbreite null ist.
  • In Richtung einer einstellbaren QOS
  • In der vorangegangenen Erläuterung wurde angenommen, dass alle Klienten den selben Wert β teilen. Man könnte auch ein Schema erwägen, wodurch ein Klient einen β-Wert entsprechend der Dienstklasse/-kosten empfängt, welche der Klient abonniert hat: je größer die Kosten (und erwartete Dienstqualität oder QOS, quality of service) desto größer der Wert von β.
  • Anstelle eines Maximierens von Gebühren durch die oben beschriebenen Verfahren wird eine Abwandlung des Algorithmus zum Maximieren von Durchsatz betrachtet, wobei die Reservedurchsatzberechnung für jede Sitzung den individuellen β-Wert des verbundenen Klienten in Betrachtung nimmt. Auf diese Weise kann ein einzelner Algorithmus beiden Zielen dienen. Der Optimierer sichert zunächst, dass jede Sitzung ihre angeforderte minimale Bandbreite empfängt (was nun typischerweise von ß und der verstrichenen Sitzungszeit abhängen würde) bevor allen eine Überschussbandbreite durch Interpolation mehr oder weniger gleichmäßig zugeteilt würde. (Entsprechend 15)
  • Das Schema ist berechnungsmäßig einfacher als das in 16 gezeigte iterative Interpolationsverfahren; es ist wohl auch gerechter und stabiler hinsichtlich der Zuteilung von verfügbarer Bandbreite.
  • Durch Fristablauf angesteuerte Inhaltsverteilung
  • Bei dem Liefern von sichtbarem oder hörbarem Inhalt an ein Wiedergabegerät gibt der Optimierungsalgorithmus eine minimale Durchsatzrate vor, welche sicherstellt, dass der gesamte Inhalt innerhalb der implizierten Deadline (letzter Ablieferungstermin) geliefert wird, was der letzte Moment einer Wiedergabesitzung ist. Dennoch versucht der Optimierer, den Inhalt entsprechend der Bandbreitenverfügbarkeit innerhalb des als Ganzen genommenen Servers früher zu liefern. Ein ähnliches, jedoch weitaus einfacheres Szenario erhebt sich in Bezug auf die Verteilung von Inhalt von einem optimierten Server an ein Zielgerät, wann immer die Lieferung innerhalb einer bezeichneten Zeit, oder äquivalent, innerhalb einer gegebenen verstrichenen Zeit, abgeschlossen sein muß, und, wenn ein überlappter, nicht blockierender Verbrauch des Inhalts bei einer festen Rate nicht erforderlich ist.
  • Ein Beispiel betrifft die Anwendung, bei welcher ein Sitzungsbündel eine Sitzung umfasst, welche dem gestalteten Programm zusammen mit Sitzungen für jede Anzeige zugeordnet ist, für welche eingeplant ist, dass sie das gestaltete Programm bei einer bezeichneten Zeit unterbrechen. Jede Sitzung ist mit einem separaten Mediapuffer ausgestattet, welcher in dem Falle von Anzeigen typischerweise groß genug sein wird, um die Anzeige vollständig aufzunehmen, wodurch ein nahtloser Übergang zu der Anzeige bei der bestellten Zeit gestattet ist.
  • Bei dem Anpassen des Optimierers an die Bedürfnisse der Inhaltsverteilung müssen wir die Formulierung der Durchsatzrandbedingungen wie folgt revidieren:
    • 1. Mediapuffer sind nicht von Interesse, es möge nur der Puffer überlaufen, und es kann angenommen werden, dass der gesamte empfangene Inhalt in einer Datei oder Platte oder in einem Speicher weggespeichert ist und auf weitere Verwendung wartet.
    • 2. Aus den selben Gründen kann der Wert von β null sein, bei welchem die minimale Durchsatzrate gleich der Just-In-Time-Rate ist, welche erhalten wird, indem der noch nicht gelieferte Inhalt durch die Zeit bis zur Deadline dividiert wird: fk JIT(tk) = Lk TOGO/(Tk – tk) (24)
    wobei: Lk TOGO = verbleibender Inhalt für Sitzung k, d.h., wie durch den Server zu der Zeit t noch nicht geliefert, (client.lookup(k).session.payloadToGo).
  • Es sei das beliebige Format der zu verteilenden Datei gegeben, so bedeutet T nicht länger die "Wiedergabedauer" bei der durchschnittlichen Wiedergaberate (averagePlayRate); vielmehr stellt T die verstrichene Zeit bis zu der Deadline dar, welche in dem Moment gemessen wird, in dem die Liefersitzung gestartet wurde, und t stellt die verstrichene Zeit seit dem Start der Sitzung dar.
  • Sitzungsbündel
  • Ein Sitzungsbündel ist eine Menge von Sitzungen, welche durch einen geteilten Kanal fließen und daher einer aggregierten Durchsatzrandbedingung unterworfen sind, welche gleich der Kapazität des geteilten Kanals ist. Eine wichtige Anwendung von Sitzungsbündeln ist mit dem Einfügen von Anzeigen verbunden.
  • Es ist nicht ausreichend, jede der bildenden Sitzungen als unabhängig in Bezug auf den Durchsatzoptimierer zu behandeln, weil diese Praxis dazu führen kann, dass Sitzungsdurchsatzziele, welche nicht die Kanalkapazität überschreiten, wenn sie einzeln betrachtet werden, dennoch diese selbe geteilte Kapazität überschreiten können, wenn sie zusammenaddiert werden.
  • Eine Lösung dieses Problems verwendet zwei unterschiedliche Schritte:
  • 1. Das Sitzungsbündel wird durch den Serveroptimierer wie eine virtuelle Sitzung behandelt, welche der minimalen Durchsatzrandbedingung unterworfen wird, welche durch die Aufaddierung der individuellen Sitzungsminima, und einer maximalen Randbedingung erhalten wird, welche das Kleinste von (a) der Summe der kleinsten der Randbedingungen (3) und (4) für jede Sitzung, und (b) der geteilten Kanalkapazität client.lookup(k).channel.maxFlowRate(fk cap) ist. Der Durchsatzoptimierer erzeugt dann ein aggregiertes Durchsatzziel für alle virtuellen Sitzungen der Kanäle durch Interpolation, unter Verwendung von: Cost(t) = f1(t) + .. + f2(t) (25)
  • Der Kostenvektor in diesem Beispiel ist der n-dimensionale Einheitsvektor, wobei n die Anzahl aktiver Klienten ist. c = (1, 1, ...,1) (26)
  • Nun ist es möglich, ein erreichbares aggregiertes Durchsatzziel für das Sitzungsbündel k zu erhalten, welches wir optimal unter den bildenden Sitzungen aufteilen müssen. Zum Glück für uns kann wieder unsere Interpolationsprozedur von 15 auf die Sitzungen in unserem Bündel (bundle) angewandt werden, wobei aber das oben erzeugte aggregierte Durchsatzziel die aggregierte Durchsatzrandbedingung fsvr max ersetzt.
  • Insbesondere:
  • Für jeden Durchsatz fki, innerhalb des Sitzungsbündels k, wird die optimale Durchsatzrate durch Interpolation zwischen minimalen und maximalen Sitzungsdurchsätzen erhalten: fki opt = fki min + α·(fki max – fki min) (27) α = [(fK bundle – fki min + ... fkn min)]/[(fki max – fki min) + + (Fkn max – fkn min)] (28)und der Wert von fk bundle wird von einer Optimierung höheren Niveaus erhalten, worin ein Sitzungsbündel k als eine virtuelle Sitzung behandelt wird, für welche gilt: fk min = fk1 min + ... + fki min (29) fk max = min(fk1 max + .. + fkn max, fk cap) (30)
  • Es ist anzumerken, dass Sitzungsbündel typischerweise von dynamischer Natur sind, welche viele, wenn nicht alle, ihrer bildenden Sitzungen überleben. Bevor eine Sitzung dem Bündel zugefügt wird, müssen zwei CAC-Entscheidungen erfüllt sein:
    • (1) Schaffe Bandbreitenverfügbarkeit innerhalb des Bündels; und
    • (2) Bandbreitenverfügbarkeit innerhalb des Servers.
  • Beziehung zur adaptiven Ratensteuerung
  • Die Durchsatzoptimierungsverfahren sollten als die untersten und möglicherweise nur die ersten von vielen überwachenden Steuerschichten angesehen werden, welche auf allen Streamingsitzungen angeordnet sind, welche ihre eigenen hierarchischen Stacks von Steuerfunktionen umfassen; ratenadaptive Steuerung, welche oberhalb eines Durchsatzratenregulierers angeordnet ist, welcher auf einer Transportentität beruht.
  • Es ist bekannt, dass eine Kanalkapazität in weitem Maße über die Zeit variiert. Ein Kapazitätsverlust auf einen Wert unterhalb der minimalen Reservedurchsatzrate ist problematisch, weil er bewirkt, dass letztere zunimmt, was eine Verletzung der Annahme ihrer Monotonität ist. In einem Server mit einer verfügbaren Reservebandbreite kann solch eine Zunahme durch den Durchsatzoptimierer aufgenommen werden (indem er die minimale Durchsatzreservierung der Sitzung auf den höheren Wert schiebt), vorausgesetzt, dass das Durchsatzdefizit in naher Zeit kompensiert werden kann, indem vorabgelieferter Inhalt von dem Mediapuffer abgezogen wird. Sollte sich eine dieser Resourcen einer Erschöpfung nähern, mag eine Streamverschlechterung auf eine geringere Bitrate oder Framerate die einzige brauchbare Option in Ermangelung einer Pause sein. Ob nach oben oder nach unten, jeder Ratenwechsel ist ein Wechsel an fe, welchem eine Änderung der Reservedurchsatzratenzuteilung der Sitzung durch den Optimierer vorangehen muß.
  • Wie gesehen werden kann, müssen der Optimierer und Ratenadapter mit Vorsicht integriert werden. Ein möglicher Ansatz wäre, einen Ratenadapter derart zu modifizieren, dass er mit dem Durchsatzoptimierer seinen vorgeschlagenen fe-Wert von neuem verhandelt, bevor er den Ratenwechsel bewirkt, welchen er auf der Grundlage von durch den Durchsatzregulierer bereitgestellten Informationen für passend hält. Unter schweren Lastbedingungen können Ratenzuwächse aufgeschoben werden, wenn Bandbreitenverfügbarkeit erwartet wird. Das Gegenteil ist bei Ratendurchsatzabnahmen wahr: diese würden so lange wie möglich durch den Optimierer auf einem System verhindert, welches nicht voll ausgelastet ist, wie zuvor erläutert.
  • Live-Ereignisse
  • Bezugnehmend auf 17 kann das Verfahren der vorliegenden Anmeldung auf die Optimierung von "Live", zeitversetzten "beinahe Live" Ereignissen und kaskadierter Lieferung ausgedehnt werden, wobei ein Server Inhalt an einen anderen liefert, während der letztere Klienten für den selben Inhalt akzeptiert. Die Erweiterung nimmt die folgenden Kenndaten des Servers und der Live-Aufführung an:
    • 1. Die Aufführung ist von fester Dauer T, welche im voraus bekannt ist, welche bei einer Durchschnittsrate fe kodiert ist, eine voraussichtliche Nutzlast von fe·T aufweist;
    • 2. Der Ursprungsserver an dem Punkt des Einspeisens verzögert den Stream durch eine kleine Verweildauer (dwell time) TDWELL in der Größenordnung von Sekunden (beispielsweise 10). Gleichwohl ist der verzögerte Inhalt für eine frühe Lieferung an gespiegelte Server und Wiedergabegeräte verfügbar, mit dem Ziel, diese mit einem Minimum an Isolierung von Netzflackern (network jitter) zu versehen, und die rechtzeitige Lieferung der Live-Videoframes zu bewirken.
    • 3. Während des Live-Ereignisses wird aufgenommener Inhalt in einer Datei gespeichert, wodurch es Nachzüglern ermöglicht ist, das "Live-Ereignis" beginnend von einem beliebigen Punkt zwischen der Gegenwart und der Startzeit des Ereignisses zu betrachten;
    • 4. Bei dem Ende des Live-Ereignisses ist der kodierte Inhalt nunmehr vollständig in einer Datei aufgenommen und zur Betrachtung während des gleichmäßigen offenen Zulassungsfensters verfügbar (beispielsweise 60 Minuten in 17).
  • Die Optimierung von Live-Ereignissen und Video-on-Demand (VOD) unterscheiden sich hauptsächlich in einer Hinsicht, nämlich in der Formulierung der Serverinhalt-Unterlauf-Randbedingung.
  • Für VOD lautet diese Randbedingung
    (31)
    Lk TOGO(t) wird bei dem Beginn der Wiedergabe auf die Inhaltsgröße (fe·T) initialisiert, und dekrementiert, wenn den Klienten Inhalt geliefert wird. Δt ist das Zeitintervall zwischen aufeinanderfolgenden periodischen Optimierungen (beispielsweise 1 Sekunde). In der Praxis verläuft diese Randbedingung gut oberhalb anderer betriebsmäßiger maximaler Durchsatzrandbedingungen (beispielsweise Pufferüberlauf, Kanalkapazität) bis zur allerletzten Berechnung des Sitzungsdurchsatzziels durch den Optimierer.
  • Für einen Live-Stream muß diese Randbedingung zusätzlich die Tatsache wiedergeben, dass der Inhalt in den Server hinein streamt (worin er aufgebaut wird), genau dann, wenn der Server diesen nach außen zu den Klienten streamt, und dass die letztere Aktivität nicht die Erstere überholen kann.
  • Bezugnehmend auf 17 (welche zeigt, wie sich optimierte Live-Streams verhalten) zeigt die Linie L1 den Aufbau eines frisch aufgenommenen Inhalts an den Server. Die Linie L2, welche relativ zu L1 um die Verweildauer TDWELL verzögert (zeitverschoben) ist, stellt die Live-Aufführung als Sendung und durch Klienten betrachtbar dar. Ein derartiger Klient wird zu einer Zeit A zugelassen und tritt der Live-Sitzung in dem Live-Augenblick B bei. Die gestrichelte gekurvte Linie, welche die Punkte B und C verbindet, zeigt einen plausiblen Aufbau an Inhalt in dem Mediapuffer des Klienten vor einer Wiedergabe, wenn der Betrachter seinen Fortschritt entlang der Linie L2 fortsetzt. Hinter dem Punkt C folgt das Obere (top) des Mediapuffers dem live aufgenommenen Stream und schreitet dann entlang der Linie L1 voran. In diesem Beispiel beschränkt die Zeitverschiebung zwischen der Live-Aufführung wie gesendet (L2) und der Live-Aufführung wie aufgenommen (L1) den Betrag an Inhalt, welcher sich jemals in einem Klientenmediapuffer unangesehen seiner tatsächlichen Kapazität ansammeln könnte, auf ein Maximum.
  • Ein anderer Klient, zugelassen zu der Zeit t = 10, interessiert sich dafür, den Live-Stream ab dem Beginn zu betrachten, ohne irgendetwas zu verpassen. Wie zuvor zeigt die gestrichelte Linie, welche 10 und D verbindet, einen plausiblen Aufbau an Inhalt in dem Mediapuffer des Inhalts vor der Wiedergabe, wenn der Betrachter seinen Fortschritt entlang der Linie L3 fortsetzt, welche um (10 + TDWELL) Minuten relativ zu L1 zeitverschoben ist. Die größere Zeitverschiebung (nunmehr zwischen L1 und L3) gestattet extensiveres Vorpuffern von "beinahe Live"-Inhalt.
  • Die vorliegenden Randbedingungen erzeugen keine geeigneten Durchsatzbegrenzungen an und jenseits der Punkte C und D, wenn die Klientenlieferstreams sich schließlich mit dem Live-Aufnahmestream in dem Live-Augenblick verbinden. Daher ist es möglich, dass der Optimierer Durchsatzziele vorschlägt, welche nicht realisiert werden können.
  • Entsprechend wird die folgende Modifikation für eine Verwendung mit Live- oder kaskadierten Streams gemacht: fk(t) <= [(Lk TOGO(t) – LiveTOGO(t)]/Δt (32)für ein mit einer Durchsatzrate fe geliefertes Live-Ereignis haben wir LiveTOGO(t) = max(fe·(T – TDWELL – t),0) (33)
  • LiveTOGO(t) ist die Spanne zwischen voraussichtlicher Inhaltsgröße fe·T (Niveaulinie L0 in 17) und der Inhaltsaufnahmeniveaulinie L1, wobei Lk TOGO(t) die Lücke zwischen L0 (d.h. fe·T) und der gestrichelten gekurvten Linie ist, welche das dem Mediapuffer gelieferte Inhaltsniveau darstellt. Das letztere muß immer größer sein als das erstere. Wenn die beiden sich einander annähern, wird diese Randbedingung wirksam, was bewirkt, dass Lk TOGO(t) immer größer ist als LiveTOGO(t), während Lk TOGO(t) mit einer Rate fe abnimmt.
  • Betrachter, welche spät hinzukommen und bereit sind, die Live-Aufführung mit einiger Verspätung relativ zu dem Live-Fall zu sehen, genießen aufgrund ihrer größeren effektiven Pufferkapazität höhere mögliche Niveaus an Isolierung von Netzwerkstörungen und somit QOS. Durch dasselbe Merkmal ermöglichen solche Betrachter dem Optimierer eine größere Freiheit, den Fluß von VOD und "Live"-Inhalt über Lastfluktuationen zu optimieren, wodurch der Optimierer die Serverkapazität verbessert. Betrachter, welche wünschen, das Live-Event in "Echtzeit" zu erleben, genießen nichtsdestoweniger einen Vorteil durch eine bescheiden verbesserte QOS, welche durch einen Wert von Verweildauer von Inhalt in ihren Puffern verliehen wird.
  • Zusammenfassung
  • Ein Verfahren und System für Ruf-/Verbindungsannahme und Durchsatzmodulation für eine Netzlieferung von Video-/Audio-Programmen ist so bereitgestellt.

Claims (36)

  1. Verfahren einer Bandbreitenzuteilung zur Lieferung von gespeichertem digitalen Inhalt von wenigstens einem Server-Gerät an wenigstens ein Klient-Gerät mittels eines Netzes, wobei das Verfahren die folgenden Schritte umfasst a) Vorschreiben einer Steuervariable, welche eine Vorgabe-Durchsatzrate von dem Server-Gerät an jedes Klient-Gerät darstellt; b) Bestimmen zeitveränderlicher Randbedingungen für die Durchflussrate des Inhalts; c) Bestimmen einer Kostenfunktion der Steuervariablen für alle Klienten; und d) Vorschreiben von Bandbreite für alle Klienten auf der Grundlage des Wertes der Steuervariablen, welche die Kostenfunktion maximieren, umfassend ein Durchführen periodischer Berechnungen, um den Wert der Steuervariable derart zu aktualisieren, dass die Bandbreite kontinuierlich jedem Klienten zugeteilt werden kann, gekennzeichnet durch Annehmen eines neuen Klienten durch: i) Bestimmen einer zugelassenen Kapazität der Bandbreite; ii) Zulassen eines voraussichtlichen Klienten, falls der für den Klienten minimal erlaubte Wert der Steuervariablen kleiner ist als die zugelassene Kapazität; und iii) wobei einem zu einem Dienst zugelassenen Klienten garantiert ist, einen hinreichenden Inhaltsdurchsatz über die gesamte Sitzung zu haben.
  2. Verfahren nach Anspruch 1, wobei die zugelassene Kapazität gleich einer um einen vorbestimmten Sicherheitsvorhalt verminderten Server-Freiraumkapazität (server swing capacity) ist, wobei der Sicherheitsvorhalt null sein kann, wobei die Freiraumkapazität gleich der Differenz zwischen der Server-Durchsatzkapazität und der Summe der minimal erlaubten Durchsatzraten für alle Klienten ist.
  3. Verfahren nach Anspruch 2, wobei der minimal erlaubte Wert der Steuervariable mit einer durchschnittlichen Verbrauchsrate initialisiert wird.
  4. Verfahren nach Anspruch 2, wobei der minimal erlaubte Wert der Steuervariable mit einer mit einem Faktor multiplizierten durchschnittlichen Verbrauchsrate initialisiert wird, wobei der Faktor größer als eins ist.
  5. Verfahren nach Anspruch 2, wobei die Server-Durchsatzkapazität in einer Stufenfunktion entsprechend einem vorbestimmten Ablaufplan mit der Zeit variiert und der Schritt des Annehmens eines neuen Klienten ferner umfasst iv) Bestimmen einer Abfolge von zukünftigen Stufenänderungen der Server-Durchsatzkapazität; v) Bestimmen des Wertes für eine zukünftige ungünstigste Freiraumkapazität zu jeder Zeit in der Abfolge der zukünftigen Stufenänderungen, wobei die ungünstigste Freiraumkapazität von der Server-Durchsatzkapazität gleichzeitig erhalten wird, indem eine hochgerechnete gegenwärtige minimal erlaubte Durchsatzrate für alle aktiven Klienten abgezogen wird, welche möglicherweise in der Zukunft aktiv sind; und vi) Zulassen eines voraussichtlichen Klienten, falls ein minimal erlaubter Wert der Steuervariable kleiner ist als die von der Abfolge und der gegenwärtigen Kapazität erhaltenen Kapazität, vii) wodurch ein neuer Klient zugelassen werden kann, ohne den Dienst für bestehende Klienten bei Vorliegen zuvor geplanter Server-Durchsatz-Kapazitätsänderungen zu beeinträchtigen, und alle Klienten Inhalt in ihren Puffern entsprechend der Größe ihrer jeweiligen Pufferkapazität aufspeichern.
  6. Verfahren nach Anspruch 5, wobei der Schritt des Aufnehmens eines neuen Klienten ferner umfasst: viii) Aufteilen der verfügbaren Bandbreite in Aufteilungen, welche eine vorgeschriebene Dienst-Gebühr darstellen; ix) Bestimmen einer Maximum-Minimum-Kapazität für eine Dienst-Gebühr, so dass die Maximum-Minimum-Kapazität die maximal erlaubte Summe von allen minimal erlaubten Durchsatzraten für alle Klienten ist, welche einer gleichen oder geringeren Dienst-Gebühr unterliegen, wobei die Maximum-Minimum-Kapazität gleich der Summe der Bandbreitenzuteilungen für alle Dienst-Gebühren ist, welche kleiner als oder gleich der Dienst-Gebühr sind; x) Bestimmen einer für eine Dienst-Gebühr spezifischen Freiraumkapazität für eine gegebene Dienst-Gebühr als die Differenz zwischen der Maximum-Minimum-Kapazität für die Dienst-Gebühr und der Summe aller minimal erlaubten Durchsatzraten für alle Klienten, welche der Dienst-Gebühr oder einer geringeren Dienst-Gebühr unterliegen; xi) Bestimmen der Server-Freiraumkapazität, so dass sie die Server-Durchsatzkapazität minus einem Vorhalt und minus der Summe der minimal erlaubten Durchsatzraten für alle Klienten ist; und xii) Bestimmen der für eine Dienst-Gebühr spezifischen Kapazität, so dass sie das Kleinste der Server-Freiraumkapazität und der gebührenspezifischen Freiraumkapazität ist.
  7. Verfahren nach Anspruch 6, wobei der Schritt des Annehmens eines neuen Klienten ferner umfasst: xiii) Bestimmen der Folge von zukünftigen Zeiten von Stufenänderungen der Server-Freiraumkapazität über eine vorgeschlagene Verbrauchsperiode; xiv) Bestimmen des zukünftigen Wertes für den ungünstigsten Fall für die für die Dienst-Gebühr spezifische Kapazität für jede Zeit in der Abfolge der zukünftigen Zeiten, wobei der Wert für den ungünstigsten Fall erhalten wird, indem die hochgerechnete gegenwärtige minimal erlaubte Durchsatzrate aller gegenwärtig aktiven Klienten verwendet wird, welche möglicherweise zu der Zeit in der Zukunft aktiv sind; und xv) Zulassen eines einer gegebenen Dienst-Gebühr unterliegenden Klienten, falls die minimale Durchsatzrate des Klienten geringer ist als die von der Abfolge und der gegenwärtigen für eine Dienst-Gebühr spezifischen Kapazität erhaltenen Kapazität.
  8. Verfahren nach Anspruch 1, wobei Schritt (b) ein Bestimmen zeitveränderlicher Randbedingungen umfasst, wobei: i) eine aggregierte Durchsatzrate an alle Klienten eine vorbestimmte Server-Durchsatzkapazität nicht überschreitet; ii) die Durchsatzrate von dem Server zu dem Klienten eine maximal erlaubte Durchsatzrate für den Klienten nicht überschreitet; iii) die Durchsatzrate zu dem Klienten niemals einen Überlauf eines Puffers des Klienten bewirken wird; iv) die Durchsatzrate zu dem Klienten stoppt, wenn der Inhalt abgelaufen ist; und v) die Durchsatzrate von dem Server niemals kleiner sein wird als die minimal erlaubte Durchsatzrate des Klienten, welche Durchsatzrate mit der Zeit variieren kann und null sein kann.
  9. Verfahren nach Anspruch 8, wobei die maximal erlaubte Durchsatzrate zu dem Klienten durch das Minimum von einem ausgewählten der folgenden gegeben ist: i) eine Obergrenze der Klient-Durchsatzrate; ii) die zum Füllen des Klientenpuffers vor der nächsten periodischen Berechnung erforderliche Durchsatzrate; und iii) die zum Vervollständigen der Lieferung des Inhalts vor der nächsten periodischen Berechnung erforderliche Durchsatzrate.
  10. Verfahren nach Anspruch 9, wobei: i) die minimal erlaubte Klient-Durchsatzrate nicht mit der Zeit zunehmen kann, aber sich derart verringern kann, dass der Anfangswert der Steuerrate nicht kleiner ist als die durchschnittliche Verbrauchsrate; ii) die Steuervariable für den Klienten immer größer als oder gleich der aktuellen minimal erlaubten Durchsatzrate ist; und iii) der Klientenpuffer niemals einen Unterlauf erfahren wird bis der Inhalt vollständig bei der durchschnittlichen Verbrauchsrate verbraucht ist.
  11. Verfahren nach Anspruch 10, wobei die minimale Klient-Durchsatzrate das Produkt der konstanten Inhaltsdurchsatzrate von dem Klienten zu dem Server mit einem Faktor größer oder gleich eins ist, wobei der Server bewirkt, dass der letzte Anteil des Inhalts in dem letztmöglichen Moment geliefert wird, wenn der Klientenpuffer bei der durchschnittlichen Verbrauchsrate geleert wird.
  12. Verfahren nach Anspruch 11, wobei die minimale Klient-Durchsatzrate mit der durchschnittlichen Verbrauchsrate initialisiert ist.
  13. Verfahren nach Anspruch 11, wobei die minimale Klient-Durchsatzrate mit der mit einem Faktor größer als eins multiplizierten durchschnittlichen Verbrauchsrate initialisiert ist.
  14. Verfahren nach Anspruch 11, ferner umfassend den Schritt des periodischen Errechnens der minimalen Klient-Durchsatzrate.
  15. Verfahren nach Anspruch 1, wobei die Kostenfunktion eine aggregierte Durchsatzrate darstellt und die Summe der Durchsatzraten für alle Klienten ist.
  16. Verfahren nach Anspruch 1, wobei die Kostenfunktion eine Dienst-Gebühr darstellt, und die Summe der Klient-Durchsätze, multipliziert mit den Dienstkosten des Klienten, ist.
  17. Verfahren nach Anspruch 16, wobei Schritt (a) umfasst: i) Bestimmen einer maximal erlaubten Durchsatzrate und einer minimal erlaubten Durchsatzrate für jeden Klienten; ii) Bestimmen eines Durchsatzratenbereiches für jeden Klienten als die Differenz zwischen der maximal erlaubten Durchsatzrate und der minimal erlaubten Durchsatzrate; und iii) Initialisieren einer aktuellen Durchsatzrate für jeden Klienten mit der minimal erlaubten Durchsatzrate und Summieren der Durchsatzrate auf die gesamten Server-Durchsatzrate; und/oder Schritt (d) umfasst: i) Berechnen verbleibender Serverbandbreite als die Differenz zwischen der maximalen Server-Durchsatz-Kapazität und der gesamten Server-Durchsatzrate; und ii) Zuteilen der verbleibenden Serverbandbreite auf verbleibende Klienten, wobei alle Klienten mit gegebenen Dienstkosten eine gleichmäßige Bandbreite entsprechend der Größe ihrer jeweiligen Bereiche empfangen, und keinem Klienten mit gegebenen Dienstkosten eine Bandbreite zugeteilt wird, es sei denn, dass alle Klienten mit höheren Dienstkosten ihre maximal mögliche Zuteilung an Bandbreite empfangen haben.
  18. Verfahren nach Anspruch 15, wobei der die Steuervariable vorschreibende Schritt (a) umfasst: i) Bilden einer Hyperebene von Steuervariablen welche zu der maximal erlaubten aggregierten Durchsatzrate aggregieren; ii) Berechnen eines ersten Vektors von minimal erlaubten Klient-Durchsatzraten; iii) Berechnen eines zweiten Vektors von maximal erlaubten Klient-Durchsatzraten; iv) Bestimmen einer multi-dimensionalen Gestalt, von welcher eine innere Diagonale die ersten und zweiten Vektoren aufspannt; und v) Auffinden einer Lösung von Steuervariablen an dem Schnittpunkt zwischen der Diagonalen und der Hyperebene.
  19. Verfahren nach Anspruch 18, wobei Schritt (v) ein Auffinden einer Lösung von Steuervariablen an dem zweiten Vektor umfasst, falls es keinen Schnittpunkt zwischen der Diagonalen und der Hyperebene gibt.
  20. Verfahren nach Anspruch 15, wobei Schritt (a) umfasst: i) Berechnen der Summe der minimal erlaubten Durchsatzraten für alle aktiven Klienten; ii) Berechnen der Summe der Durchsatzratenbereiche für alle aktiven Klienten; iii) Berechnen der Differenz zwischen der maximal erlaubten Aggregat-Durchsatzrate und der Summe des Minimums; iv) Berechnen eines Faktors als den Quotienten der Differenz über der Summe der Bereiche; v) falls der Faktor eins überschreitet, wird die Steuervariable auf die maximal erlaubte Klient-Durchsatzrate gesetzt; und vi) falls der Faktor kleiner als eins ist, Berechnen der Steuervariable durch Multiplizieren des Klient-Bereiches mit dem Faktor und dann Addieren des Ergebnisses zu der minimal erlaubten Klient-Durchsatzrate.
  21. Verfahren nach Anspruch 15, wobei Schritt (a) umfasst: i) Bestimmen der maximal erlaubten Durchsatzrate und einer minimal erlaubten Durchsatzrate für jeden Klienten; ii) Bestimmen des Durchsatzratenbereiches für jeden Klienten als die Differenz zwischen der maximalen Durchsatzrate und der minimalen Durchsatzrate; und iii) Initialisieren der Steuervariable für jeden Klienten mit der minimal erlaubten Durchsatzrate und Aufsummieren der Durchsatzraten zu einer gesamten Serverdurchsatzrate; und Schritt (d) umfasst: i) Berechnen einer verbleibenden Serverbandbreite als die Differenz zwischen der maximalen Server-Durchsatzkapazität und der gesamten Server-Durchsatzrate; und ii) Zuteilen verbleibender Serverbandbreite auf verbleibende Klienten entsprechend der Größe ihrer jeweiligen Bereiche.
  22. Verfahren nach Anspruch 21, wobei der Schritt des Zuteilens der verbleibenden Serverbandbreite ferner umfasst, dass die Klienten die Bandbreite gleichmäßig entsprechend der Größe ihrer jeweiligen Bereiche empfangen.
  23. Verfahren nach Anspruch 15, wobei der maximierte Wert der Steuervariablen bestimmt wird durch: i) Bestimmen einer maximalen und minimalen Durchsatzrate für jeden Klienten; ii) Bestimmen eines Bereiches zwischen den maximalen und minimalen Durchsatzraten, um einen Durchsatzratenbereich zu finden; iii) Bestimmen einer verfügbaren Bandbreite, indem die Differenz zwischen einer aggregierten Durchsatzkapazität und einer Summe der minimalen Durchsatzraten aufgefunden wird; iv) Bestimmen einer Durchsatzvariable, indem die ungenutzte Bandbreite durch den Durchsatzratenbereich dividiert wird; v) Vorschreiben, dass die Steuervariable die zu dem Durchsatzratenbereich addierte minimale Durchsatzrate ist, falls die Durchsatzvariable kleiner als eins ist oder Vorschreiben, dass die Steuervariable die zu dem um die Durchsatzvariable korrigierten Durchsatzratenbereich addierte minimale Durchsatzrate ist, falls die Durchsatzvariable größer als eins ist, derart, dass die Steuervariable für jeden Klienten leicht errechnet wird.
  24. Verfahren nach Anspruch 15, wobei wenigstens eine Sitzung ein Sitzungsbündel ist und: 1) die Randbedingung des minimalen Durchsatzes als die Summe der Randbedingungen der minimalen Durchsatzrate für alle gebündelten Sitzungen berechnet ist; 2) die Randbedingung des maximalen Durchsatzes das kleinste von 1) der Summe der Randbedingungen der maximalen individuellen Durchsatzrate jeder Sitzung und 2) der Durchsatzkapazität des unter den gebündelten Sitzungen aufgeteilten Kanals ist; und 3) die für die Sitzung berechnete Vorgabe-Durchflussrate unter den gebündelten erstellenden (constituent) Sitzungen aufgeteilt wird.
  25. Verfahren nach Anspruch 24, wobei die gebündelte Sitzung eine Anzeige ist.
  26. Verfahren nach Anspruch 1, wobei die Schritte des: a) Vorschreibens einer Steuervariablen; und c) Bestimmens einer Kostenfunktion der Steuervariablen für alle Klienten auf der Grundlage einer Puffergröße des Klienten durchgeführt werden.
  27. System zum Zuteilen von Bandbreite zwischen einem Server-Gerät und wenigstens einem Klient-Gerät, wobei das System umfasst ein Rufannahmemodul, das dazu ausgebildet ist, eine hereinkommende Dienst-Anforderung gemäß dem Verfahren nach einem der Ansprüche 1 bis 26 zu empfangen, dadurch gekennzeichnet, dass das Rufannahmemodul umfasst: ein System-Rufzulassung-Steuermodul, das dazu ausgebildet ist, zu bewerten, ob oder ob nicht hinreichende interne Ressourcen vorliegen, um eine Dienst-Anforderung eines neuen Klienten zu unterstützen; ein Bandbreitenzuteilung-Zulassung-Steuermodul, das dazu ausgebildet ist, zu prüfen, ob der Klient passt, und den Klienten zuzulassen oder zurückzuweisen; und ein Durchsatzoptimierermodul, das dazu ausgebildet ist, die zugelassene Kapazität zu berechnen.
  28. System nach Anspruch 27 zum Zuteilen der Bandbreite zwischen einem Server-Gerät und wenigstens einem Klient-Gerät, wobei das System ferner umfasst: einen Durchsatz-Regulierer, der dazu ausgebildet ist, einen Inhalt bei einer modulierten Vorgabe-Durchflussrate zu liefern, wobei der Inhalt zwischen dem Server-Gerät und einem jeweiligen Klient-Gerät geliefert wird, wenn ein Ruf durch das Rufannahmemodul angenommen ist; und wobei der Durchsatzoptimierer ferner dazu ausgebildet ist, die Vorgabe-Durchflussrate des Durchsatz-Regulierers zu modulieren, um den aggregierten Durchsatz des Inhalts zu optimieren, dadurch gekennzeichnet, dass der Durchsatzoptimierer dazu ausgebildet ist, einen maximierten Wert der Steuervariable zu bestimmen, durch: i) Bestimmen einer maximalen und minimalen Durchflussrate für jeden Klienten; ii) Bestimmen eines Bereiches zwischen den maximalen und minimalen Durchflussraten, um einen Durchflussratenbereich aufzufinden; iii) Bestimmen einer ungenutzten Bandbreite, indem die Differenz zwischen einer aggregierten Durchsatz-Kapazität und einer Summe der minimalen Durchsatzrate aufgefunden wird; iv) Bestimmen einer Durchsatz-Variablen, indem die ungenutzte Bandbreite durch den Durchflussratenbereich dividiert wird; v) Vorschreiben, dass die Steuervariable die zu dem Durchflussratenbereich addierte minimale Durchflussrate ist, falls die Durchsatz-Variable kleiner als eins ist oder Vorschreiben, dass die Steuervariable die zu dem um die Durchsatz-Variable korrigierten Durchsatzratenbereich addierte minimale Durchflussrate ist, falls die Durchsatz-Variable größer als eins ist, derart, dass die Steuervariable für jeden Klienten leicht errechnet wird.
  29. System nach Anspruch 28, wobei der Durchsatzoptimierer dazu ausgebildet ist, die Durchsatzrate des Durchsatzregulierers zu modulieren, um Gebühren für den Inhalt zu optimieren.
  30. System nach Anspruch 29, wobei der Durchsatzregulierer dazu ausgebildet ist, in Antwort auf die Steuervariable die modulierte Durchsatzrate des Inhalts zu liefern.
  31. System nach Anspruch 28, wobei der Durchsatzoptimierer dazu ausgebildet ist, eine Steuervariable zu bestimmen, welche einer optimierten Durchsatzrate entspricht.
  32. System nach Anspruch 31, wobei der Durchsatzoptimierer dazu ausgebildet ist, eine Kostenfunktion der Steuervariable zu erzeugen, welche einem maximierten Wert der Steuervariable entspricht.
  33. System nach Anspruch 28, wobei der Durchsatzregulierer dazu ausgebildet ist, in Antwort auf die Steuervariable die modulierte Durchsatzrate des Inhalts zu liefern.
  34. System nach Anspruch 33, wobei das Rufannahmemodul dazu ausgebildet ist, einen Ruf auf der Grundlage des Wertes der Steuervariablen anzunehmen.
  35. System nach Anspruch 27 zum Aufteilen eines/einer gegebenen Gesamtdurchsatzrate und/oder Bandbreite auf eine Mehrzahl von Sitzungen für Klienten, wobei das System dazu ausgebildet ist, durchzuführen: a) Berechnen einer Summe von Randbedingungen mit minimaler Durchsatzrate für jede Sitzung; b) Berechnen einer Summe von Durchflussratenbereichen für alle aktiven Klienten; c) Berechnen einer Differenz zwischen der gegebenen Gesamt-Durchsatzrate und einer Summe der Minima der Durchsatzraten; d) Berechnen eines Faktors als den Quotienten der Differenz über der Summe der Durchsatzratenbereiche; e) falls der Faktor 1 überschreitet, Setzen der Durchsatzrate auf die maximal erlaubte Klient-Durchsatzrate; und f) falls der Faktor kleiner als 1 ist, Berechnen der Durchsatzrate, indem der Klient-Bereich mit dem Faktor multipliziert wird und dann das Ergebnis zu der minimal erlaubten Klient-Durchsatzrate addiert wird.
  36. System nach Anspruch 35, wobei das System dazu ausgebildet ist, Klienten durch ihre Dienstkosten zu unterscheiden und iterativ den Klienten Bandbreite zuzuteilen, wobei der jedem Klienten in einer Kostenkategorie aufgeteilte Betrag der von vorherigen Zuteilungen für Klienten in höheren Kostenkategorien verbleibende Betrag ist.
DE60209123T 2001-06-26 2002-06-25 Verfahren zur annahmesteuerung von verbindungen und schnelle bestimmung der lieferung von multimedia-inhalten in netzen Expired - Lifetime DE60209123T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/893,364 US6850965B2 (en) 1998-11-17 2001-06-26 Method for connection acceptance and rapid determination of optimal multi-media content delivery over network
US893364 2001-06-26
PCT/US2002/016590 WO2003003760A2 (en) 2001-06-26 2002-06-25 Method for connection acceptance control and rapid determination of optimal multi-media content delivery over networks

Publications (2)

Publication Number Publication Date
DE60209123D1 DE60209123D1 (de) 2006-04-20
DE60209123T2 true DE60209123T2 (de) 2006-07-27

Family

ID=25401436

Family Applications (2)

Application Number Title Priority Date Filing Date
DE60236219T Expired - Lifetime DE60236219D1 (de) 2001-06-26 2002-06-25 Verfahren zur Annahmesteuerung von Verbindungen und schnelle Bestimmung der Lieferung von Multimedia Inhalten in Netzen
DE60209123T Expired - Lifetime DE60209123T2 (de) 2001-06-26 2002-06-25 Verfahren zur annahmesteuerung von verbindungen und schnelle bestimmung der lieferung von multimedia-inhalten in netzen

Family Applications Before (1)

Application Number Title Priority Date Filing Date
DE60236219T Expired - Lifetime DE60236219D1 (de) 2001-06-26 2002-06-25 Verfahren zur Annahmesteuerung von Verbindungen und schnelle Bestimmung der Lieferung von Multimedia Inhalten in Netzen

Country Status (4)

Country Link
US (5) US6850965B2 (de)
EP (2) EP1402690B1 (de)
DE (2) DE60236219D1 (de)
WO (1) WO2003003760A2 (de)

Families Citing this family (292)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7397363B2 (en) * 1993-06-08 2008-07-08 Raymond Anthony Joao Control and/or monitoring apparatus and method
US7253731B2 (en) 2001-01-23 2007-08-07 Raymond Anthony Joao Apparatus and method for providing shipment information
US10011247B2 (en) 1996-03-27 2018-07-03 Gtj Ventures, Llc Control, monitoring and/or security apparatus and method
US10152876B2 (en) 1996-03-27 2018-12-11 Gtj Ventures, Llc Control, monitoring, and/or security apparatus and method
US7277010B2 (en) * 1996-03-27 2007-10-02 Raymond Anthony Joao Monitoring apparatus and method
US9075136B1 (en) 1998-03-04 2015-07-07 Gtj Ventures, Llc Vehicle operator and/or occupant information apparatus and method
US7334044B1 (en) * 1998-11-17 2008-02-19 Burst.Com Method for connection acceptance control and optimal multi-media content delivery over networks
US6850965B2 (en) * 1998-11-17 2005-02-01 Arthur Douglas Allen Method for connection acceptance and rapid determination of optimal multi-media content delivery over network
US6223165B1 (en) 1999-03-22 2001-04-24 Keen.Com, Incorporated Method and apparatus to connect consumer to expert
US7464147B1 (en) * 1999-11-10 2008-12-09 International Business Machines Corporation Managing a cluster of networked resources and resource groups using rule - base constraints in a scalable clustering environment
FI20001314A (fi) * 2000-05-31 2001-12-01 Nokia Networks Oy Telekommunikaatioverkon jaottelu
US8595372B2 (en) * 2000-09-12 2013-11-26 Wag Acquisition, Llc Streaming media buffering system
US6766376B2 (en) 2000-09-12 2004-07-20 Sn Acquisition, L.L.C Streaming media buffering system
US7716358B2 (en) 2000-09-12 2010-05-11 Wag Acquisition, Llc Streaming media buffering system
US7058050B2 (en) * 2000-12-01 2006-06-06 Telefonaktiebolaget L M Ericsson (Publ) Flexible inter-network communication scheduling
SE521661C2 (sv) * 2000-12-18 2003-11-25 Ericsson Telefon Ab L M Metod och system för realtidsuppdatering av tillgänglig nätverksserviceaccess i ett kommunikationsnätverk
US8554617B2 (en) 2007-10-02 2013-10-08 Ingenio Llc Systems and methods to provide alternative connections for real time communications
US20020129378A1 (en) * 2001-03-08 2002-09-12 Cloonan Thomas J. Method and apparatus for controlling traffic loading on a cable modem termination system
US20020129377A1 (en) * 2001-03-08 2002-09-12 Cloonan Thomas J. Method and apparatus for controlling traffic loading on links between internet service providers and cable modem termination system
US20020133402A1 (en) 2001-03-13 2002-09-19 Scott Faber Apparatus and method for recruiting, communicating with, and paying participants of interactive advertising
US7110525B1 (en) 2001-06-25 2006-09-19 Toby Heller Agent training sensitive call routing system
CA2453645A1 (en) * 2001-07-17 2003-01-30 British Telecommunications Public Limited Company Communications network
US7047308B2 (en) * 2001-08-31 2006-05-16 Sharp Laboratories Of America, Inc. System and method for simultaneous media playout
US6704403B2 (en) 2001-09-05 2004-03-09 Ingenio, Inc. Apparatus and method for ensuring a real-time connection between users and selected service provider using voice mail
JP2003087693A (ja) * 2001-09-11 2003-03-20 Sony Corp 情報処理装置および方法、並びにプログラム
JP2003143218A (ja) * 2001-10-31 2003-05-16 Fujitsu Ltd 通信帯域制御システム
KR100547852B1 (ko) * 2002-01-09 2006-02-01 삼성전자주식회사 이동통신 시스템에서 호 수락 방법
US7054940B2 (en) * 2002-01-25 2006-05-30 Thomson Licensing Adaptive cost of service for communication network based on level of network congestion
US10562492B2 (en) 2002-05-01 2020-02-18 Gtj Ventures, Llc Control, monitoring and/or security apparatus and method
US7571251B2 (en) * 2002-05-06 2009-08-04 Sandvine Incorporated Ulc Path optimizer for peer to peer networks
US7343418B2 (en) * 2002-06-03 2008-03-11 Microsoft Corporation Peer to peer network
TWI265697B (en) * 2002-06-06 2006-11-01 Ibm Digital contents distribution system, digital contents distribution method, computer readable recording medium storing the program therein, and server and client therefor
US7305464B2 (en) * 2002-09-03 2007-12-04 End Ii End Communications, Inc. Systems and methods for broadband network optimization
US7725568B2 (en) * 2002-09-09 2010-05-25 Netapp, Inc. Method and apparatus for network storage flow control
US9818136B1 (en) 2003-02-05 2017-11-14 Steven M. Hoffberg System and method for determining contingent relevance
US7373416B2 (en) * 2003-04-24 2008-05-13 Akamai Technologies, Inc. Method and system for constraining server usage in a distributed network
US9247288B2 (en) 2003-08-12 2016-01-26 Time Warner Cable Enterprises Llc Technique for effectively delivering targeted advertisements through a communications network having limited bandwidth
US20080089347A1 (en) * 2003-08-29 2008-04-17 End Ii End Communications Inc. Systems and methods for broadband network optimization
US8656005B2 (en) * 2003-09-29 2014-02-18 Siemens Enterprise Communications Gmbh & Co. Kg Method for providing performance characteristics on demand
US20070124207A1 (en) * 2003-10-06 2007-05-31 Utbk, Inc. Methods and Apparatuses to Provide Prompts in Connecting Customers to Advertisers
US7366683B2 (en) 2003-10-06 2008-04-29 Utbk, Inc. Methods and apparatuses for offline selection of pay-per-call advertisers
US9208496B2 (en) * 2003-10-06 2015-12-08 Yellowpages.Com Llc Systems and methods to provide a communication reference in a representation of a geographical region
US7428497B2 (en) 2003-10-06 2008-09-23 Utbk, Inc. Methods and apparatuses for pay-per-call advertising in mobile/wireless applications
US7424442B2 (en) 2004-05-04 2008-09-09 Utbk, Inc. Method and apparatus to allocate and recycle telephone numbers in a call-tracking system
US8140392B2 (en) * 2003-10-06 2012-03-20 Utbk, Inc. Methods and apparatuses for pay for lead advertisements
US8069082B2 (en) * 2003-10-06 2011-11-29 Utbk, Inc. Methods and apparatuses to determine prices of communication leads
US8140389B2 (en) 2003-10-06 2012-03-20 Utbk, Inc. Methods and apparatuses for pay for deal advertisements
US9984377B2 (en) 2003-10-06 2018-05-29 Yellowpages.Com Llc System and method for providing advertisement
US8837698B2 (en) 2003-10-06 2014-09-16 Yp Interactive Llc Systems and methods to collect information just in time for connecting people for real time communications
US9202217B2 (en) * 2003-10-06 2015-12-01 Yellowpages.Com Llc Methods and apparatuses to manage multiple advertisements
US20050188415A1 (en) * 2004-01-23 2005-08-25 Camiant, Inc. Video policy server
US7822428B1 (en) 2004-03-01 2010-10-26 Adobe Systems Incorporated Mobile rich media information system
US7706782B1 (en) 2004-03-01 2010-04-27 Adobe Systems Incorporated System and method for developing information for a wireless information system
US7478158B1 (en) * 2004-03-01 2009-01-13 Adobe Systems Incorporated Bandwidth management system
FR2867932A1 (fr) * 2004-03-18 2005-09-23 France Telecom Mesure de debit en reception pour un terminal
US8489720B1 (en) * 2004-03-31 2013-07-16 Blue Coat Systems, Inc. Cost-aware, bandwidth management systems adaptive to network conditions
US20050235283A1 (en) * 2004-04-15 2005-10-20 Wilson Christopher S Automatic setup of parameters in networked devices
US20050231849A1 (en) * 2004-04-15 2005-10-20 Viresh Rustagi Graphical user interface for hard disk drive management in a data storage system
US20050235063A1 (en) * 2004-04-15 2005-10-20 Wilson Christopher S Automatic discovery of a networked device
US20050262322A1 (en) * 2004-05-21 2005-11-24 Kenneth Ma System and method of replacing a data storage drive
US7681007B2 (en) * 2004-04-15 2010-03-16 Broadcom Corporation Automatic expansion of hard disk drive capacity in a storage device
US7555613B2 (en) * 2004-05-11 2009-06-30 Broadcom Corporation Storage access prioritization using a data storage device
US20050235336A1 (en) * 2004-04-15 2005-10-20 Kenneth Ma Data storage system and method that supports personal video recorder functionality
US8868772B2 (en) 2004-04-30 2014-10-21 Echostar Technologies L.L.C. Apparatus, system, and method for adaptive-rate shifting of streaming content
US7818444B2 (en) 2004-04-30 2010-10-19 Move Networks, Inc. Apparatus, system, and method for multi-bitrate content streaming
US8843978B2 (en) 2004-06-29 2014-09-23 Time Warner Cable Enterprises Llc Method and apparatus for network bandwidth allocation
US9549043B1 (en) 2004-07-20 2017-01-17 Conviva Inc. Allocating resources in a content delivery environment
US10862994B1 (en) 2006-11-15 2020-12-08 Conviva Inc. Facilitating client decisions
FR2877173B1 (fr) * 2004-10-25 2007-04-27 France Telecom Procede, support de donnees et dispositif pour la planification de diffusions de contenus
KR100631514B1 (ko) * 2004-12-16 2006-10-09 엘지전자 주식회사 실시간 스트리밍 서비스의 전송률 제어 방법
US20090064242A1 (en) * 2004-12-23 2009-03-05 Bitband Technologies Ltd. Fast channel switching for digital tv
EP1675399A3 (de) * 2004-12-23 2009-04-29 Bitband Technologies Ltd. Schnelle Kanalumschaltung für Digitalfernsehen
US7995585B2 (en) * 2005-01-14 2011-08-09 Alcatel Lucent Method of controlling transmission rates
US7567565B2 (en) 2005-02-01 2009-07-28 Time Warner Cable Inc. Method and apparatus for network bandwidth conservation
US7979308B2 (en) 2005-03-03 2011-07-12 Utbk, Inc. Methods and apparatuses for sorting lists for presentation
US20060230136A1 (en) * 2005-04-12 2006-10-12 Kenneth Ma Intelligent auto-archiving
US8683066B2 (en) 2007-08-06 2014-03-25 DISH Digital L.L.C. Apparatus, system, and method for multi-bitrate content streaming
US8370514B2 (en) 2005-04-28 2013-02-05 DISH Digital L.L.C. System and method of minimizing network bandwidth retrieved from an external network
KR100781511B1 (ko) * 2005-06-29 2007-12-03 삼성전자주식회사 홈 네트워크를 기반으로 하는 스트리밍 서비스 방법 및시스템
US8139924B2 (en) * 2005-07-07 2012-03-20 Tivo Inc. System and method for digital content retrieval
US7487206B2 (en) * 2005-07-15 2009-02-03 International Business Machines Corporation Method for providing load diffusion in data stream correlations
US8599832B2 (en) 2005-09-28 2013-12-03 Ingenio Llc Methods and apparatuses to connect people for real time communications via voice over internet protocol (VOIP)
US8059530B1 (en) * 2005-09-30 2011-11-15 GlobalFoundries, Inc. System and method for controlling network access
WO2007053727A2 (en) * 2005-11-01 2007-05-10 Telcordia Technologies, Inc. System and method for peer-to-peer digital content sharing
US20070130344A1 (en) * 2005-11-14 2007-06-07 Pepper Timothy C Using load balancing to assign paths to hosts in a network
US8340098B2 (en) * 2005-12-07 2012-12-25 General Instrument Corporation Method and apparatus for delivering compressed video to subscriber terminals
US8099508B2 (en) * 2005-12-16 2012-01-17 Comcast Cable Holdings, Llc Method of using tokens and policy descriptors for dynamic on demand session management
US9197479B2 (en) * 2006-01-10 2015-11-24 Yellowpages.Com Llc Systems and methods to manage a queue of people requesting real time communication connections
US8077849B2 (en) * 2006-01-10 2011-12-13 Utbk, Inc. Systems and methods to block communication calls
US8185437B2 (en) 2007-07-12 2012-05-22 Utbk, Inc. Systems and methods to provide communication connections via partners
US7675854B2 (en) 2006-02-21 2010-03-09 A10 Networks, Inc. System and method for an adaptive TCP SYN cookie with time validation
US8170065B2 (en) 2006-02-27 2012-05-01 Time Warner Cable Inc. Methods and apparatus for selecting digital access technology for programming and data delivery
US8458753B2 (en) 2006-02-27 2013-06-04 Time Warner Cable Enterprises Llc Methods and apparatus for device capabilities discovery and utilization within a content-based network
US20090307732A1 (en) * 2006-03-07 2009-12-10 Noam Cohen Personalized Insertion of Advertisements in Streaming Media
JP4920080B2 (ja) * 2006-03-28 2012-04-18 トムソン ライセンシング コンテンツ配信ネットワークのための集中化したスケジューラ
US7548547B2 (en) * 2006-03-31 2009-06-16 Microsoft Corporation Controlling the transfer of terminal server data
US7548937B2 (en) * 2006-05-04 2009-06-16 International Business Machines Corporation System and method for scalable processing of multi-way data stream correlations
US8144587B2 (en) 2006-08-22 2012-03-27 Embarq Holdings Company, Llc System and method for load balancing network resources using a connection admission control engine
US8531954B2 (en) 2006-08-22 2013-09-10 Centurylink Intellectual Property Llc System and method for handling reservation requests with a connection admission control engine
US8312507B2 (en) 2006-10-17 2012-11-13 A10 Networks, Inc. System and method to apply network traffic policy to an application session
US8584199B1 (en) 2006-10-17 2013-11-12 A10 Networks, Inc. System and method to apply a packet routing policy to an application session
US9317855B2 (en) * 2006-10-24 2016-04-19 Yellowpages.Com Llc Systems and methods to provide voice connections via local telephone numbers
US20080111977A1 (en) * 2006-11-14 2008-05-15 Asml Holding N.V. Compensation techniques for fluid and magnetic bearings
US8874964B1 (en) 2006-11-15 2014-10-28 Conviva Inc. Detecting problems in content distribution
US8874725B1 (en) 2006-11-15 2014-10-28 Conviva Inc. Monitoring the performance of a content player
US9124601B2 (en) 2006-11-15 2015-09-01 Conviva Inc. Data client
US9264780B1 (en) * 2006-11-15 2016-02-16 Conviva Inc. Managing synchronized data requests in a content delivery network
US8751605B1 (en) 2006-11-15 2014-06-10 Conviva Inc. Accounting for network traffic
US8489923B1 (en) 2006-11-15 2013-07-16 Conviva Inc. Detecting problems in content distribution
US8451825B2 (en) 2007-02-22 2013-05-28 Utbk, Llc Systems and methods to confirm initiation of a callback
US9015342B2 (en) * 2007-01-22 2015-04-21 Xerox Corporation Two-level structured overlay design for cluster management in a peer-to-peer network
US8843107B2 (en) * 2007-02-08 2014-09-23 Yp Interactive Llc Methods and apparatuses to connect users of mobile devices to advertisers
KR100868095B1 (ko) * 2007-02-13 2008-11-11 삼성전자주식회사 무선 통신망의 자원 관리 시스템 및 방법
US20080235746A1 (en) 2007-03-20 2008-09-25 Michael James Peters Methods and apparatus for content delivery and replacement in a network
US8473386B2 (en) 2007-04-10 2013-06-25 Ingenio Llc Systems and methods to facilitate real time communications between members of a social network
US20080263459A1 (en) * 2007-04-20 2008-10-23 Utbk, Inc. Methods and Systems to Determine Availability for Real Time Communications via Virtual Reality
US8601386B2 (en) 2007-04-20 2013-12-03 Ingenio Llc Methods and systems to facilitate real time communications in virtual reality
US20080262911A1 (en) * 2007-04-20 2008-10-23 Utbk, Inc. Methods and Systems to Search in Virtual Reality for Real Time Communications
US20080263446A1 (en) * 2007-04-20 2008-10-23 Utbk, Inc. Methods and Systems to Connect People to Services via Virtual Reality
US7881335B2 (en) * 2007-04-30 2011-02-01 Sharp Laboratories Of America, Inc. Client-side bandwidth allocation for continuous and discrete media
FR2916925B1 (fr) * 2007-05-30 2009-07-17 Alcatel Lucent Sas Procede et dispositif de tamponnage de paquets de donnees transmis via une communication plesiochrone.
US8520535B2 (en) * 2007-05-31 2013-08-27 International Business Machines Corporation Optimization process and system for a heterogeneous ad hoc Network
US8320414B2 (en) 2007-05-31 2012-11-27 International Business Machines Corporation Formation and rearrangement of lender devices that perform multiplexing functions
US8620784B2 (en) 2007-05-31 2013-12-31 International Business Machines Corporation Formation and rearrangement of ad hoc networks
US8249984B2 (en) 2007-05-31 2012-08-21 International Business Machines Corporation System and method for fair-sharing in bandwidth sharing ad-hoc networks
US10623998B2 (en) 2007-05-31 2020-04-14 International Business Machines Corporation Price offerings for bandwidth-sharing ad hoc networks
US10419360B2 (en) 2007-05-31 2019-09-17 International Business Machines Corporation Market-driven variable price offerings for bandwidth-sharing ad hoc networks
US8681952B2 (en) 2007-06-18 2014-03-25 Ingenio Llc Systems and methods to selectively provide telephonic connections
US20080313083A1 (en) * 2007-06-18 2008-12-18 Utbk, Inc. Systems and Methods To Manage Presentations of Advertisements
US8320368B2 (en) 2007-06-18 2012-11-27 Utbk, Inc. Systems and methods to provide communication references based on recommendations to connect people for real time communications
US8532276B2 (en) 2007-06-26 2013-09-10 Ingenio Llc Systems and methods to provide telephonic connections via concurrent calls
US20110019662A1 (en) 2007-06-28 2011-01-27 Rebelvox Llc Method for downloading and using a communication application through a web browser
US20100198923A1 (en) 2009-01-30 2010-08-05 Rebelvox Llc Methods for using the addressing, protocols and the infrastructure of email to support near real-time communication
US8180029B2 (en) 2007-06-28 2012-05-15 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US8645477B2 (en) * 2009-01-30 2014-02-04 Voxer Ip Llc Progressive messaging apparatus and method capable of supporting near real-time communication
US9178916B2 (en) 2007-06-28 2015-11-03 Voxer Ip Llc Real-time messaging method and apparatus
US8825772B2 (en) * 2007-06-28 2014-09-02 Voxer Ip Llc System and method for operating a server for real-time communication of time-based media
US8533611B2 (en) * 2009-08-10 2013-09-10 Voxer Ip Llc Browser enabled communication device for conducting conversations in either a real-time mode, a time-shifted mode, and with the ability to seamlessly shift the conversation between the two modes
US8688789B2 (en) * 2009-01-30 2014-04-01 Voxer Ip Llc Progressive messaging apparatus and method capable of supporting near real-time communication
US11095583B2 (en) 2007-06-28 2021-08-17 Voxer Ip Llc Real-time messaging method and apparatus
US8280018B2 (en) 2007-07-06 2012-10-02 Utbk, Inc. Systems and methods to provide information via connections for real time communications between people
US8171135B2 (en) * 2007-07-12 2012-05-01 Viasat, Inc. Accumulator for prefetch abort
US20100146415A1 (en) * 2007-07-12 2010-06-10 Viasat, Inc. Dns prefetch
US8966053B2 (en) * 2007-07-12 2015-02-24 Viasat, Inc. Methods and systems for performing a prefetch abort operation for network acceleration
US20090016222A1 (en) * 2007-07-12 2009-01-15 Viasat, Inc. Methods and systems for implementing time-slice flow control
US8549099B2 (en) * 2007-07-12 2013-10-01 Viasat, Inc. Methods and systems for javascript parsing
US8724789B2 (en) 2007-08-06 2014-05-13 Yellow Pages Systems and methods to connect people for real time communications via directory assistance
US8438301B2 (en) * 2007-09-24 2013-05-07 Microsoft Corporation Automatic bit rate detection and throttling
US8295465B2 (en) 2007-09-25 2012-10-23 Utbk, Inc. Systems and methods to connect members of a social network for real time communication
US9071859B2 (en) 2007-09-26 2015-06-30 Time Warner Cable Enterprises Llc Methods and apparatus for user-based targeted content delivery
US8561116B2 (en) 2007-09-26 2013-10-15 Charles A. Hasek Methods and apparatus for content caching in a video network
US8245287B2 (en) 2007-10-01 2012-08-14 Viasat, Inc. Server message block (SMB) security signatures seamless session switch
US9654328B2 (en) 2007-10-15 2017-05-16 Viasat, Inc. Methods and systems for implementing a cache model in a prefetching system
US8099757B2 (en) 2007-10-15 2012-01-17 Time Warner Cable Inc. Methods and apparatus for revenue-optimized delivery of content in a network
US20090277226A1 (en) * 2007-10-16 2009-11-12 Santangelo Salvatore R Modular melter
US8099512B2 (en) * 2007-10-19 2012-01-17 Voxer Ip Llc Method and system for real-time synchronization across a distributed services communication network
US8855276B2 (en) * 2007-10-19 2014-10-07 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US8682336B2 (en) * 2007-10-19 2014-03-25 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US8706907B2 (en) * 2007-10-19 2014-04-22 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US8321581B2 (en) * 2007-10-19 2012-11-27 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US8001261B2 (en) * 2007-10-19 2011-08-16 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US8391312B2 (en) * 2007-10-19 2013-03-05 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US8380874B2 (en) * 2007-10-19 2013-02-19 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US8145780B2 (en) * 2007-10-19 2012-03-27 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US8111713B2 (en) * 2007-10-19 2012-02-07 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US7751361B2 (en) * 2007-10-19 2010-07-06 Rebelvox Llc Graceful degradation for voice communication services over wired and wireless networks
US8250181B2 (en) * 2007-10-19 2012-08-21 Voxer Ip Llc Method and apparatus for near real-time synchronization of voice communications
US8090867B2 (en) * 2007-10-19 2012-01-03 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
US7751362B2 (en) * 2007-10-19 2010-07-06 Rebelvox Llc Graceful degradation for voice communication services over wired and wireless networks
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
US20090103529A1 (en) * 2007-10-19 2009-04-23 Rebelvox, Llc Telecommunication and multimedia management method and apparatus
US8699678B2 (en) * 2007-10-19 2014-04-15 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
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
US8169916B1 (en) 2007-11-23 2012-05-01 Media Melon, Inc. Multi-platform video delivery configuration
US20090144068A1 (en) * 2007-11-30 2009-06-04 Utbk, Inc. Methods and Apparatuses to Provide Connections for Real Time Communications
US8276181B1 (en) * 2007-12-21 2012-09-25 General Instrument Corporation Content distribution system and method for optimizing multiplexed transport channels
US8260952B2 (en) 2008-01-31 2012-09-04 Microsoft Corporation Multi-rate peer-assisted data streaming
US8700792B2 (en) * 2008-01-31 2014-04-15 General Instrument Corporation Method and apparatus for expediting delivery of programming content over a broadband network
US9113334B2 (en) 2008-02-01 2015-08-18 Tekelec, Inc. Methods, systems, and computer readable media for controlling access to voice resources in mobile networks using mobility management signaling messages
US8321582B2 (en) * 2008-02-08 2012-11-27 Voxer Ip Llc Communication application for conducting conversations including multiple media types in either a real-time mode or a time-shifted mode
US9054912B2 (en) 2008-02-08 2015-06-09 Voxer Ip Llc Communication application for conducting conversations including multiple media types in either a real-time mode or a time-shifted mode
US8542804B2 (en) 2008-02-08 2013-09-24 Voxer Ip Llc Voice and text mail application for communication devices
US8813143B2 (en) 2008-02-26 2014-08-19 Time Warner Enterprises LLC Methods and apparatus for business-based network resource allocation
US8255536B2 (en) * 2008-03-21 2012-08-28 Microsoft Corporation Bandwidth and latency controller
US8432810B2 (en) 2008-03-28 2013-04-30 Apple Inc. Techniques for reducing buffer overflow in a communication system
US8401582B2 (en) 2008-04-11 2013-03-19 Voxer Ip Llc Time-shifting for push to talk voice communication systems
US8612620B2 (en) * 2008-04-11 2013-12-17 Mobitv, Inc. Client capability adjustment
US20080259796A1 (en) * 2008-04-17 2008-10-23 Glen Patrick Abousleman Method and apparatus for network-adaptive video coding
US9047236B2 (en) * 2008-06-06 2015-06-02 Amazon Technologies, Inc. Client side stream switching
US9167007B2 (en) * 2008-06-06 2015-10-20 Amazon Technologies, Inc. Stream complexity mapping
US8239564B2 (en) * 2008-06-20 2012-08-07 Microsoft Corporation Dynamic throttling based on network conditions
US8752092B2 (en) * 2008-06-27 2014-06-10 General Instrument Corporation Method and apparatus for providing low resolution images in a broadcast system
JP2010028691A (ja) * 2008-07-24 2010-02-04 Nec Corp コンテンツ受信再生方法および装置
JP5517181B2 (ja) * 2008-07-24 2014-06-11 日本電気株式会社 コンテンツ配信システム、コンテンツ受信方法および装置
US8325662B2 (en) * 2008-09-17 2012-12-04 Voxer Ip Llc Apparatus and method for enabling communication when network connectivity is reduced or lost during a conversation and for resuming the conversation when connectivity improves
US8166170B2 (en) * 2008-10-26 2012-04-24 Imagine Communications Ltd. Distributed multiplexing
EP2359536B1 (de) * 2008-11-24 2016-03-16 Ankeena Networks, Inc., Adaptives system zur ausgabe von netzwerkinhalten
US8219711B2 (en) 2008-11-24 2012-07-10 Juniper Networks, Inc. Dynamic variable rate media delivery system
US8370520B2 (en) 2008-11-24 2013-02-05 Juniper Networks, Inc. Adaptive network content delivery system
US8270950B2 (en) * 2008-12-05 2012-09-18 Voxer Ip Llc Mobile communication device, method, and system for reducing exposure to radio frequency energy during transmissions by transmitting media in/out while the mobile communication device is safe distance away from user
US20100180005A1 (en) * 2009-01-12 2010-07-15 Viasat, Inc. Cache cycling
US8849927B2 (en) * 2009-01-30 2014-09-30 Voxer Ip Llc Method for implementing real-time voice messaging on a server node
KR101066112B1 (ko) * 2009-03-02 2011-09-20 전자부품연구원 편광간섭 표면 검출장치 및 이를 이용한 편광간 위상변화 검출방법
US8838824B2 (en) * 2009-03-16 2014-09-16 Onmobile Global Limited Method and apparatus for delivery of adapted media
US8402494B1 (en) 2009-03-23 2013-03-19 Conviva Inc. Switching content
US8699343B2 (en) * 2009-04-27 2014-04-15 Sonus Networks, Inc. Adaptive rate control based on overload signals
US20100274893A1 (en) * 2009-04-27 2010-10-28 Sonus Networks, Inc. Methods and apparatus for detecting and limiting focused server overload in a network
US9866609B2 (en) 2009-06-08 2018-01-09 Time Warner Cable Enterprises Llc Methods and apparatus for premises content distribution
US9015335B1 (en) 2009-06-17 2015-04-21 Amazon Technologies, Inc. Server side stream switching
US9118680B1 (en) 2009-06-30 2015-08-25 Amazon Technologies, Inc. Opportunistic routing
US9137301B1 (en) 2009-06-30 2015-09-15 Amazon Technologies, Inc. Client based opportunistic routing
US9137300B1 (en) 2009-06-30 2015-09-15 Amazon Technologies, Inc. Opportunistic pipe switching
US9960967B2 (en) 2009-10-21 2018-05-01 A10 Networks, Inc. Determining an application delivery server based on geo-location information
EP2497295A4 (de) * 2009-11-05 2017-04-19 Telefonaktiebolaget LM Ericsson (publ) Verfahren und anordnung zur netzwerkressourcenverwaltung
US9521178B1 (en) 2009-12-21 2016-12-13 Amazon Technologies, Inc. Dynamic bandwidth thresholds
US9510029B2 (en) 2010-02-11 2016-11-29 Echostar Advanced Technologies L.L.C. Systems and methods to provide trick play during streaming playback
US8527649B2 (en) * 2010-03-09 2013-09-03 Mobixell Networks Ltd. Multi-stream bit rate adaptation
US9357244B2 (en) * 2010-03-11 2016-05-31 Arris Enterprises, Inc. Method and system for inhibiting audio-video synchronization delay
EP2388978B1 (de) * 2010-05-18 2018-12-12 Alcatel Lucent Verfahren und Vorrichtungen zur Bestimmung der Netzwerkverbindungslast
US8295180B2 (en) 2010-06-04 2012-10-23 Alcatel Lucent Quality of service aware rate throttling of delay tolerant traffic for energy efficient routing
US9215275B2 (en) 2010-09-30 2015-12-15 A10 Networks, Inc. System and method to balance servers based on server load status
US9609052B2 (en) 2010-12-02 2017-03-28 A10 Networks, Inc. Distributing application traffic to servers based on dynamic service response time
US8688074B2 (en) 2011-02-28 2014-04-01 Moisixell Networks Ltd. Service classification of web traffic
US8897154B2 (en) 2011-10-24 2014-11-25 A10 Networks, Inc. Combining stateless and stateful server load balancing
US9386088B2 (en) 2011-11-29 2016-07-05 A10 Networks, Inc. Accelerating service processing using fast path TCP
US9094364B2 (en) 2011-12-23 2015-07-28 A10 Networks, Inc. Methods to manage services over a service gateway
US10044582B2 (en) 2012-01-28 2018-08-07 A10 Networks, Inc. Generating secure name records
US9613042B1 (en) 2012-04-09 2017-04-04 Conviva Inc. Dynamic generation of video manifest files
JP5838925B2 (ja) * 2012-06-29 2016-01-06 ブラザー工業株式会社 通信システム、端末装置、動画の表示方法、及びプログラム
US8782221B2 (en) * 2012-07-05 2014-07-15 A10 Networks, Inc. Method to allocate buffer for TCP proxy session based on dynamic network conditions
US9854280B2 (en) 2012-07-10 2017-12-26 Time Warner Cable Enterprises Llc Apparatus and methods for selective enforcement of secondary content viewing
US8862155B2 (en) 2012-08-30 2014-10-14 Time Warner Cable Enterprises Llc Apparatus and methods for enabling location-based services within a premises
US9246965B1 (en) 2012-09-05 2016-01-26 Conviva Inc. Source assignment based on network partitioning
US10182096B1 (en) 2012-09-05 2019-01-15 Conviva Inc. Virtual resource locator
US10002141B2 (en) 2012-09-25 2018-06-19 A10 Networks, Inc. Distributed database in software driven networks
US10021174B2 (en) 2012-09-25 2018-07-10 A10 Networks, Inc. Distributing service sessions
US9843484B2 (en) 2012-09-25 2017-12-12 A10 Networks, Inc. Graceful scaling in software driven networks
WO2014052099A2 (en) 2012-09-25 2014-04-03 A10 Networks, Inc. Load distribution in data networks
US9338225B2 (en) 2012-12-06 2016-05-10 A10 Networks, Inc. Forwarding policies on a virtual service network
US9131283B2 (en) 2012-12-14 2015-09-08 Time Warner Cable Enterprises Llc Apparatus and methods for multimedia coordination
US9992306B2 (en) * 2012-12-21 2018-06-05 E*Trade Financial Corporation Dynamic execution
US10097989B2 (en) 2012-12-21 2018-10-09 E*Trade Financial Corporation Dynamic communication
US9531846B2 (en) 2013-01-23 2016-12-27 A10 Networks, Inc. Reducing buffer usage for TCP proxy session based on delayed acknowledgement
US9900252B2 (en) 2013-03-08 2018-02-20 A10 Networks, Inc. Application delivery controller and global server load balancer
US9992107B2 (en) 2013-03-15 2018-06-05 A10 Networks, Inc. Processing data packets using a policy based network path
US9503491B2 (en) * 2013-03-15 2016-11-22 Echostar Technologies L.L.C. Playback stall avoidance in adaptive media streaming
US10368255B2 (en) 2017-07-25 2019-07-30 Time Warner Cable Enterprises Llc Methods and apparatus for client-based dynamic control of connections to co-existing radio access networks
US9066153B2 (en) 2013-03-15 2015-06-23 Time Warner Cable Enterprises Llc Apparatus and methods for multicast delivery of content in a content delivery network
US10027761B2 (en) 2013-05-03 2018-07-17 A10 Networks, Inc. Facilitating a secure 3 party network session by a network device
WO2014179753A2 (en) 2013-05-03 2014-11-06 A10 Networks, Inc. Facilitating secure network traffic by an application delivery controller
US10546441B2 (en) 2013-06-04 2020-01-28 Raymond Anthony Joao Control, monitoring, and/or security, apparatus and method for premises, vehicles, and/or articles
US9313568B2 (en) 2013-07-23 2016-04-12 Chicago Custom Acoustics, Inc. Custom earphone with dome in the canal
US8966074B1 (en) 2013-09-13 2015-02-24 Network Kinetix, LLC System and method for real-time analysis of network traffic
US9407676B2 (en) * 2013-11-25 2016-08-02 At&T Intellectual Property I, Lp Method and apparatus for distributing media content
US10230770B2 (en) 2013-12-02 2019-03-12 A10 Networks, Inc. Network proxy layer for policy-based application proxies
US10020979B1 (en) 2014-03-25 2018-07-10 A10 Networks, Inc. Allocating resources in multi-core computing environments
US9942152B2 (en) 2014-03-25 2018-04-10 A10 Networks, Inc. Forwarding data packets using a service-based forwarding policy
US9942162B2 (en) 2014-03-31 2018-04-10 A10 Networks, Inc. Active application response delay time
US9806943B2 (en) 2014-04-24 2017-10-31 A10 Networks, Inc. Enabling planned upgrade/downgrade of network devices without impacting network sessions
US9450879B2 (en) 2014-05-09 2016-09-20 Nexgen Storage, Inc. Adaptive bandwidth throttling
US9906422B2 (en) 2014-05-16 2018-02-27 A10 Networks, Inc. Distributed system to determine a server's health
US9992229B2 (en) 2014-06-03 2018-06-05 A10 Networks, Inc. Programming a data network device using user defined scripts with licenses
US10129122B2 (en) 2014-06-03 2018-11-13 A10 Networks, Inc. User defined objects for network devices
US9986061B2 (en) 2014-06-03 2018-05-29 A10 Networks, Inc. Programming a data network device using user defined scripts
US11540148B2 (en) 2014-06-11 2022-12-27 Time Warner Cable Enterprises Llc Methods and apparatus for access point location
US9821738B2 (en) 2014-06-30 2017-11-21 Raymond Anthony Joao Battery power management apparatus and method
US10028025B2 (en) 2014-09-29 2018-07-17 Time Warner Cable Enterprises Llc Apparatus and methods for enabling presence-based and use-based services
US9935833B2 (en) 2014-11-05 2018-04-03 Time Warner Cable Enterprises Llc Methods and apparatus for determining an optimized wireless interface installation configuration
US10305955B1 (en) 2014-12-08 2019-05-28 Conviva Inc. Streaming decision in the cloud
US10178043B1 (en) 2014-12-08 2019-01-08 Conviva Inc. Dynamic bitrate range selection in the cloud for optimized video streaming
CN107251008B (zh) 2015-02-27 2020-11-13 帝威视有限公司 在实况视频编码和流传输中进行帧复制和帧扩展的系统和方法
US10476831B2 (en) 2015-07-08 2019-11-12 Campus Crusade For Christ, Inc. System and methods for providing a notification upon the occurrence of a trigger event associated with playing media content over a network
US10581976B2 (en) 2015-08-12 2020-03-03 A10 Networks, Inc. Transmission control of protocol state exchange for dynamic stateful service insertion
US10243791B2 (en) 2015-08-13 2019-03-26 A10 Networks, Inc. Automated adjustment of subscriber policies
US9986578B2 (en) 2015-12-04 2018-05-29 Time Warner Cable Enterprises Llc Apparatus and methods for selective data network access
US10318288B2 (en) 2016-01-13 2019-06-11 A10 Networks, Inc. System and method to process a chain of network applications
US9918345B2 (en) 2016-01-20 2018-03-13 Time Warner Cable Enterprises Llc Apparatus and method for wireless network services in moving vehicles
US10492034B2 (en) 2016-03-07 2019-11-26 Time Warner Cable Enterprises Llc Apparatus and methods for dynamic open-access networks
US10586023B2 (en) 2016-04-21 2020-03-10 Time Warner Cable Enterprises Llc Methods and apparatus for secondary content management and fraud prevention
US10687115B2 (en) 2016-06-01 2020-06-16 Time Warner Cable Enterprises Llc Cloud-based digital content recorder apparatus and methods
US10164858B2 (en) 2016-06-15 2018-12-25 Time Warner Cable Enterprises Llc Apparatus and methods for monitoring and diagnosing a wireless network
US10911794B2 (en) 2016-11-09 2021-02-02 Charter Communications Operating, Llc Apparatus and methods for selective secondary content insertion in a digital network
US10924583B2 (en) * 2016-11-23 2021-02-16 Level 3 Communications, Llc Overload handling in a content delivery network (CDN)
US10389835B2 (en) 2017-01-10 2019-08-20 A10 Networks, Inc. Application aware systems and methods to process user loadable network applications
US10645547B2 (en) 2017-06-02 2020-05-05 Charter Communications Operating, Llc Apparatus and methods for providing wireless service in a venue
US10638361B2 (en) 2017-06-06 2020-04-28 Charter Communications Operating, Llc Methods and apparatus for dynamic control of connections to co-existing radio access networks
US11109290B2 (en) 2017-08-04 2021-08-31 Charter Communications Operating, Llc Switching connections over frequency bands of a wireless network
US10939142B2 (en) 2018-02-27 2021-03-02 Charter Communications Operating, Llc Apparatus and methods for content storage, distribution and security within a content distribution network
US10979362B2 (en) 2018-09-28 2021-04-13 Microsoft Technology Licensing, Llc Elastic resource pooling for dynamic throughput rebalancing
CN111262894B (zh) * 2018-11-30 2023-06-20 北京嘀嘀无限科技发展有限公司 一种控制在线咨询用户量的方法及装置
US11760227B2 (en) 2021-02-15 2023-09-19 Raymond Anthony Joao Battery power management apparatus and method

Family Cites Families (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2104753C (en) 1992-10-29 1999-02-16 Kotikalapudi Sriram Bandwidth allocation, transmission scheduling, and congestion avoidance in broadband atm networks
US5504744A (en) * 1994-03-09 1996-04-02 British Telecommunications Public Limited Company Broadband switching network
US5502816A (en) 1994-03-25 1996-03-26 At&T Corp. Method of routing a request for a virtual circuit based on information from concurrent requests
US5583995A (en) 1995-01-30 1996-12-10 Mrj, Inc. Apparatus and method for data storage and retrieval using bandwidth allocation
JP3612105B2 (ja) * 1995-03-13 2005-01-19 株式会社東芝 Atm通信システムとatm通信システムにおけるプロセスマイグレーション方法
US6069894A (en) 1995-06-12 2000-05-30 Telefonaktiebolaget Lm Ericsson Enhancement of network operation and performance
CA2181206C (en) * 1995-07-24 2001-03-13 Anwar Elwalid A method for admission control and routing by allocating network resources in network nodes
DE69606615T2 (de) * 1995-08-04 2000-10-26 Bortolini Engineering S N C Vorrichtung zum anbringen und beschneiden von kantenmaterial an plattenförmigen werkstücken
US5838921A (en) * 1995-12-08 1998-11-17 Silicon Graphics, Inc. Distributed connection management system with replication
US5633810A (en) * 1995-12-14 1997-05-27 Sun Microsystems, Inc. Method and apparatus for distributing network bandwidth on a media server
US5745697A (en) * 1996-03-27 1998-04-28 Digital Equipment Corporation Network flow control having intermediate node scalability to a large numbers of virtual circuits
US5982748A (en) * 1996-10-03 1999-11-09 Nortel Networks Corporation Method and apparatus for controlling admission of connection requests
US5995488A (en) * 1996-10-08 1999-11-30 Advanced Micro Devices, Inc. Method and apparatus for regulating data flow in networks
US6240066B1 (en) 1997-02-11 2001-05-29 Lucent Technologies Inc. Dynamic bandwidth and buffer management algorithm for multi-service ATM switches
US6240103B1 (en) * 1997-03-21 2001-05-29 Scientific-Atlanta, Inc. Method and apparatus for detecting and preventing bandwidth overflow in a statistical multiplexer
US6304551B1 (en) 1997-03-21 2001-10-16 Nec Usa, Inc. Real-time estimation and dynamic renegotiation of UPC values for arbitrary traffic sources in ATM networks
US6052384A (en) * 1997-03-21 2000-04-18 Scientific-Atlanta, Inc. Using a receiver model to multiplex variable-rate bit streams having timing constraints
US5978357A (en) * 1997-03-27 1999-11-02 Cabletron Systems, Inc. Phantom flow control method and apparatus with improved stability
US6125396A (en) * 1997-03-27 2000-09-26 Oracle Corporation Method and apparatus for implementing bandwidth allocation with a reserve feature
US6968379B2 (en) * 1997-05-30 2005-11-22 Sun Microsystems, Inc. Latency-reducing bandwidth-prioritization for network servers and clients
US6006264A (en) * 1997-08-01 1999-12-21 Arrowpoint Communications, Inc. Method and system for directing a flow between a client and a server
US6295294B1 (en) * 1997-08-07 2001-09-25 At&T Corp. Technique for limiting network congestion
US6075769A (en) * 1997-11-26 2000-06-13 Cisco Systems, Inc. Method and apparatus for network flow control
US6647008B1 (en) * 1997-12-19 2003-11-11 Ibm Corporation Method and system for sharing reserved bandwidth between several dependent connections in high speed packet switching networks
US6192029B1 (en) * 1998-01-29 2001-02-20 Motorola, Inc. Method and apparatus for performing flow control in a wireless communications system
US6212169B1 (en) 1998-03-13 2001-04-03 Alcatel Canada Inc. Parameter reconfiguration of connected calls
US6597662B1 (en) * 1998-03-24 2003-07-22 Nortel Networks Limited Apparatus and method for optimizing max-min fair rate control in ABR sessions
US6331986B1 (en) * 1998-04-24 2001-12-18 Lucent Technologies Inc. Method for resource allocation and routing in multi-service virtual private networks
US6466979B1 (en) 1998-11-09 2002-10-15 International Business Machines Corporation Adaptive system for optimizing a physical connection in a communication session
US6850965B2 (en) * 1998-11-17 2005-02-01 Arthur Douglas Allen Method for connection acceptance and rapid determination of optimal multi-media content delivery over network
US7334044B1 (en) 1998-11-17 2008-02-19 Burst.Com Method for connection acceptance control and optimal multi-media content delivery over networks
US6493317B1 (en) * 1998-12-18 2002-12-10 Cisco Technology, Inc. Traffic engineering technique for routing inter-class traffic in a computer network
US6801502B1 (en) * 1999-05-07 2004-10-05 At&T Corp. Method and apparatus for load-sensitive routing of long-lived packet flows
US6477167B1 (en) 1999-06-03 2002-11-05 Fujitsu Network Communications, Inc. Method and system for allocating bandwith to real-time variable bit rate (rt-VBR) traffic
US6570883B1 (en) * 1999-08-28 2003-05-27 Hsiao-Tung Wong Packet scheduling using dual weight single priority queue
US6647419B1 (en) * 1999-09-22 2003-11-11 Hewlett-Packard Development Company, L.P. System and method for allocating server output bandwidth
US6721789B1 (en) * 1999-10-06 2004-04-13 Sun Microsystems, Inc. Scheduling storage accesses for rate-guaranteed and non-rate-guaranteed requests
US6400986B1 (en) * 2000-04-10 2002-06-04 Cardiac Pacemakers, Inc. Adaptive anti-tachycardia therapy apparatus and method
US6950399B1 (en) * 2000-07-06 2005-09-27 Matsushita Electric Industrial Co., Ltd. System and associated method for scheduling transport of variable bit-rate data over a network
US6894991B2 (en) * 2000-11-30 2005-05-17 Verizon Laboratories Inc. Integrated method for performing scheduling, routing and access control in a computer network
US20040136379A1 (en) * 2001-03-13 2004-07-15 Liao Raymond R Method and apparatus for allocation of resources
US7027403B2 (en) * 2001-05-22 2006-04-11 Mitsubishi Electric Research Laboratories, Inc. Method and system for minimizing error in bandwidth allocation with an optimal number of renegotiations
US7724760B2 (en) * 2001-07-05 2010-05-25 Broadcom Corporation Method and apparatus for bandwidth guarantee and overload protection in a network switch
US7191246B2 (en) 2001-07-18 2007-03-13 Sharp Laboratories Of America, Inc. Transmission rate selection for a network of receivers having heterogenous reception bandwidth
US7031311B2 (en) * 2001-07-23 2006-04-18 Acme Packet, Inc. System and method for providing rapid rerouting of real-time multi-media flows
DE60206942T2 (de) * 2001-08-28 2006-07-27 Telefonaktiebolaget Lm Ericsson (Publ) Verfahren und vorrichtung zum optimieren von elastischen datenströmen in einem mehrweg-netz für verkehrsanfragen
US7363375B2 (en) * 2002-05-13 2008-04-22 Microsoft Corporation Adaptive allocation of last-hop bandwidth based on monitoring of end-to-end throughput
DE602004031669D1 (de) * 2003-12-24 2011-04-14 Nippon Telegraph & Telephone Dynamische bandzuteilungsschaltung, dynamisches bandzuteilungsverfahren, dynamisches bandzuteilungsprogramm und aufzeichnungsmedium
US7626944B1 (en) * 2004-03-31 2009-12-01 Packeteer, Inc. Methods, apparatuses and systems facilitating remote, automated deployment of network devices
US8117288B2 (en) * 2004-10-12 2012-02-14 International Business Machines Corporation Optimizing layout of an application on a massively parallel supercomputer
US7529185B2 (en) * 2005-01-26 2009-05-05 International Business Machines Corporation Method, system and program product for determining bandwidth consumption across a multi-tiered computer environment
US7373475B2 (en) * 2005-06-21 2008-05-13 Intel Corporation Methods for optimizing memory unit usage to maximize packet throughput for multi-processor multi-threaded architectures
US7489690B2 (en) * 2005-08-12 2009-02-10 Cellco Partnership Integrated packet latency aware QoS scheduling algorithm using proportional fairness and weighted fair queuing for wireless integrated multimedia packet services
US20070160007A1 (en) * 2006-01-11 2007-07-12 Li-Chun Wang Method and device for cost-function based handoff determination using wavelet prediction in vertical networks

Also Published As

Publication number Publication date
US20020029274A1 (en) 2002-03-07
US7346688B2 (en) 2008-03-18
EP1650909B1 (de) 2010-04-28
US20060224768A1 (en) 2006-10-05
US7383338B2 (en) 2008-06-03
US6850965B2 (en) 2005-02-01
EP1402690A2 (de) 2004-03-31
US7747748B2 (en) 2010-06-29
DE60236219D1 (de) 2010-06-10
US20050120131A1 (en) 2005-06-02
WO2003003760A2 (en) 2003-01-09
US20060218281A1 (en) 2006-09-28
EP1650909A1 (de) 2006-04-26
EP1402690B1 (de) 2006-02-08
US20080228921A1 (en) 2008-09-18
WO2003003760A3 (en) 2003-10-16
US7890631B2 (en) 2011-02-15
DE60209123D1 (de) 2006-04-20

Similar Documents

Publication Publication Date Title
DE60209123T2 (de) Verfahren zur annahmesteuerung von verbindungen und schnelle bestimmung der lieferung von multimedia-inhalten in netzen
Pâris et al. Zero-delay broadcasting protocols for video-on-demand
DE69733622T2 (de) System und Verfahren zum zeitnahen Liefern von digitalen Informationen unter Verwendung einer Fragmentierung und Sequenzierung, um die mittlere Bandbreite unddie Spitzenbandbreite zu verringern
Gao et al. Supplying instantaneous video-on-demand services using controlled multicast
DE60213297T2 (de) Multimediadatenübertragung durch vorwärtsgerichtetes Streamen
US10218758B2 (en) Smart pre-fetching for peer assisted on-demand media
DE60117957T2 (de) Verfahren, System und Rechnerprogrammprodukt zur Bandbreitenzuteilung in einem System mit Mehrfachzugriff
US7334044B1 (en) Method for connection acceptance control and optimal multi-media content delivery over networks
DE60123396T2 (de) Diskzuordnungssystem mit umordnung einer begrenzten anzahl von anforderungen
Feng et al. Smoothing and buffering for delivery of prerecorded compressed video
DE602006000171T2 (de) Verfahren zum Zuordnen einer Priorität zu einer Datenübertragung in einem Netzwerk und Netzwerksknoten, der das Verfahren verwendet
EP1860795B1 (de) Verfahren zur dynamischen Ressourcenzuteilung in einem interaktiven Satellitenfunknetz-Multimediasystem und Verwendung des Verfahrens
DE60117810T2 (de) Video-asset-einplanung für mehrfachinhaltslieferanten
Furini et al. Real-Time traffic transmission over the Internet
DE60031145T2 (de) System mit adaptiver bandbreite und verfahren für datenrundsendung
DE69828102T2 (de) Verfahren zur gerechten Paketablaufsteuerung
DE10157103A1 (de) Verfahren und Steuergerät zur Zuteilung von variablen Zeitschlitzen für eine Datenübertragung in einem paketorientierten Datennetzwerk
DE60031265T2 (de) Verfahren zur Verbindungszugangssteuerung und zur optimalen multimedialen Inhaltslieferung über Netze
Poon et al. A hybrid delivery strategy for a video-on-demand system with customer reneging behavior
Allen Optimal delivery of multi-media content over networks
Segarra et al. Simulations on batching in video-on-demand transmissions
DE102007001519B4 (de) Konzept zum Vergeben von Datenraten an Informationssignalanbieter in einem Netzwerk
US8661484B1 (en) Dynamic probability-based admission control scheme for distributed video on demand system
Yang et al. A borrow-and-return model to reduce client waiting time for broadcasting-based VOD services
Yan et al. Extended exponential broadcasting: a new broadcasting scheme for video-on-demand systems

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: DEMOCRASOFT,INC. (N. D. GES. D. STAATES DELAWA, US