DE602006001019T2 - Kommunikationsverarbeitungsvorrichtung, Datenübertragungssystem und Verfahren für Kommunikationsverarbeitung - Google Patents

Kommunikationsverarbeitungsvorrichtung, Datenübertragungssystem und Verfahren für Kommunikationsverarbeitung Download PDF

Info

Publication number
DE602006001019T2
DE602006001019T2 DE200660001019 DE602006001019T DE602006001019T2 DE 602006001019 T2 DE602006001019 T2 DE 602006001019T2 DE 200660001019 DE200660001019 DE 200660001019 DE 602006001019 T DE602006001019 T DE 602006001019T DE 602006001019 T2 DE602006001019 T2 DE 602006001019T2
Authority
DE
Germany
Prior art keywords
data
client
server
bit rate
throughput
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.)
Active
Application number
DE200660001019
Other languages
English (en)
Other versions
DE602006001019D1 (de
Inventor
Akimichi c/o I.P. Dept. Ogawa
Tatsuya c/o I.P. Dept. Igarashi
Kazuhiro c/o I.P. Dept. Shitama
Seiji c/o I.P. Dept. Miyama
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Publication of DE602006001019D1 publication Critical patent/DE602006001019D1/de
Application granted granted Critical
Publication of DE602006001019T2 publication Critical patent/DE602006001019T2/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/28Flow control; Congestion control in relation to timing considerations
    • 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/18End to end
    • 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/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2416Real-time 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/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes
    • 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/38Flow control; Congestion control by adapting coding or compression rate
    • 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/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/16Central resource management; Negotiation of resources or communication parameters, e.g. negotiating bandwidth or QoS [Quality of Service]
    • H04W28/18Negotiating wireless communication parameters
    • H04W28/22Negotiating communication rate

Description

  • Die vorliegende Erfindung betrifft Kommunikationsverarbeitungsvorrichtungen, Datenkommunikationssysteme und Kommunikationsverarbeitungsverfahren.
  • In der letzten Zeit werden Datenkommunikationen aktiv über das Internet ausgeführt. Auch sind Heimnetzwerke, welche Kommunikationen unter Vorrichtungen erlauben, welche über Netzwerke in den Wohnstätten verbunden sind, wie beispielsweise elektrische Haushaltsgeräte, Computer und periphere Vorrichtungen üblich geworden. Ein Heimnetzwerk erlaubt z. B. eine Übertragung und einen Empfang zwischen Vorrichtungen, welche über ein Netzwerk verbunden sind. Dies ist für Benutzer praktisch und komfortabel, so dass Heimnetzwerke sogar noch gebräuchlicher werden.
  • Bei einem Typ der Datenverteilung, welcher Streaming oder Datenstreaming genannt wird, werden Bilddaten, welche in einem Server gehalten werden, zu einem Client über ein Netzwerk übertragen, und der Client spielt die Bilddaten ab, während die Bilddaten empfangen werden. Ein Server, der solch eine Streamingdatenverteilung ausführt, wird als Streamingserver bezeichnet, und ein Client, der Daten von dem Streamingserver empfängt, wird als ein Streamingclient bezeichnet. Der Streamingserver führt eine Datenverarbeitung, wie beispielsweise ein Codieren aus, um zu übertragende Daten zu erzeugen, und gibt die Daten an das Netzwerk aus. Der Streamingclient akkumuliert temporär empfangene Daten in einem Puffer, und decodiert und spielt die Daten sequentiell ab.
  • In vielen Fällen wird ein Kommunikationsprotokoll, welches Real Time Transport Protocol (RTP) genannt wird, beim Datenstreaming verwendet. Grundsätzlich unterstützt RTP nicht eine Weiterübertragungssteuerung. Das heißt, RTP ist ein Protokoll wie das User Datagram Protocol (UDP), welches keine Maßnamen gegen Paketverlust oder zur Sicherung der Übertragungszeit definiert. Da eine Weiterübertragung nicht ausgeführt wird, sogar in dem Fall eines Paketverlustes, treten Verzögerungen aufgrund von Weiterübertragung nicht auf. Somit ist das RTP ein Protokoll, welches zur Echtzeitwiedergabe geeignet ist.
  • In Kommunikationen, welche auf RTP basieren, wird z. B. eine Übertragungsrate gemäß dem RTP Steuerprotokoll (RTCP) gesteuert. Zum Beispiel meldet gemäß einem Verfahren, welches in der nicht geprüften japanischen Patentanmeldung Veröffentlichungsnummer 2002-204278 offenbart ist, eine Vorrichtung an einem Daten empfangenden Ende einer Paketverlustrate oder dergleichen einer Vorrichtung an einem Datenübertragungsende in einem Empfängerbericht (RR) Paket oder RTCP. Dies erlaubt es der Vorrichtung an dem Daten übertragenden Ende, den Status der Datenübertragung abzuschätzen, und die Übertragungsrate zu steuern.
  • Bei einer Streamingverteilung ist es wünschenswert, Daten mit einer optimalen Übertragungsrate zu verteilen.
  • Zum Beispiel messen gemäß einem Schema, welches in der nicht geprüften japanischen Patentanmeldung Veröffentlichungsnummer 2004-297565 offenbart ist, eine Datenübertragungsvorrichtung und eine Datenempfangsvorrichtung eine stromaufwärtige Übertragungsrate und eine stromabwärtige Übertragungsrate, und eine Raten steuernde Vorrichtung übt eine Steuerung aus, so dass Daten übertragen werden und mit einer kleineren der gemessenen Raten empfangen werden, so dass Daten stabil übertragen werden können.
  • Ein Vorteil der Streamingverteilung basierend auf RTP, welches oben beschrieben ist, ist, dass eine Wiedergabe nicht verzögert wird, da eine Weiterübertragung nicht ausgeführt wird, sogar in einem Fall eines Paketverlustes. Jedoch, um die Datenqualität zu verbessern, ist es wünschenswert, dass ein Client vollständige Daten empfängt. Weiterhin, wenn Inhalt, welcher verteilt wird, ein verschlüsselter Inhalt ist, könnte ein Verlust eines Datenabschnitts eine Entschlüsselung verbieten, und daher ein Abspielen des Inhalts an dem Client. In dem Fall eines solchen Inhalts ist ein Protokoll, welches eine Weiterübertragungssteuerung nicht unterstützt, wie beispielsweise RTP, nicht geeignet.
  • Wenn die Vollständigkeit von transferierten Daten wünschenswert ist, wird ein Transportprotokoll, das Maßnahmen gegen Paketverlust definiert, wie beispielsweise das Transmission Control Protocol (TCP) verwendet. Ein Schema der Verteilung von Bilddaten basierend auf TCP wird z. B. in der nicht geprüften japanischen Patentanmeldung Veröffentlichungsnummer 2005-005823 beschrieben.
  • Kommunikationen basierend auf einem Transportprotokoll, wie beispielsweise TCP, werden auf einer Basis des besten Versuchs ausgeführt. Wenn ein Streamen von Multimediadaten ausgeführt wird, bringt eine Variation in einer Kommunikationsbandbereite der Kommunikationen des besten Versuchs eine Reihe von Problemen. Dieses Problem ist insbesondere z. B. in dem Fall von TCP offensichtlich. Gemäß dem TCP, obwohl ein Verlust von Daten nicht auftritt, wird die Ankunftszeit der Daten verzögert, wenn die Kommunikationsbandbreite abnimmt. Beim Streamen basierend auf TCP tendiert die Verzögerung in der Datenankunftszeit dazu, Video- oder Audiounterbrechungen zu verursachen, wenn eine Blockierung auftritt. Um dieses Problem zu überwinden, wird gewöhnlich, wenn ein Streamingserver Daten verteilt, die Bitrate von Daten, welche übertragen werden, erhöht oder verringert in Übereinstimmung mit einer Variation in der Kommunikationsbandbreite. Das Verfahren des Erhöhen oder Verringerns einer Bitrate von Multimediadaten einschließlich Videodaten oder dergleichen beeinflusst deutlich die Qualität des Datenstreamens.
  • Es ist bis heute für einen Streamingserver der Fall gewesen, zu bestimmen, ob eine Bitrate von verteilten Daten zu erhöhen oder zu verringern ist, hauptsächlich auf der Basis von Information, welche von einem Client zugeführt wird. Zum Beispiel wird Information im Hinblick auf die Menge von Daten, welche in einem Anwendungspuffer des Client akkumuliert sind, verwendet. Jedoch reicht die Berechnung der Menge von Daten, welche in dem Anwendungspuffer des Clients akkumuliert sind, nicht notwendigerweise aus, um ein Übertragen von Daten mit einer Bitrate zu verhindern, die höher ist, als eine Bitrate, welche durch die Netzwerkbandbreite erlaubt ist. Wenn Daten mit einer Bitrate übertragen werden, welche höher als eine Bitrate ist, welche durch die Netzwerkbandbreite erlaubt ist, tritt eine Blockade auf. Somit gelangen Multimediadaten nicht zu einem Client, wie gewünscht, und dies verursacht eine Zeitüberschreitung von Daten, welche in dem Anwendungspuffer des Client akkumuliert sind. Diese erhöht die Wahrscheinlichkeit von Audio- und Videounterbrechungen.
  • Weiterhin ist es gemäß dem Verfahren basierend auf Information, welche von dem Client zugeführt werden, nicht möglich, schnell eine Variation in der Kommunikationsbandbreite zu adaptieren. Zum Beispiel, wenn die Kommunikationsbandbreite zwischen dem Streamingserver und dem Streamingclient abrupt aufgrund des Auftretens von anderem Verkehr oder dergleichen verringert wird, wird die Wiedergabe von Daten, welche übertragen werden, nicht unterbrochen, wenn der Streamingserver die Bitrate von Daten verringert, welche übertragen werden, sobald die Kommunikationsbandbreite abnimmt. Jedoch, wenn Information, welche von dem Client zugeführt wird, verwendet wird, wie in dem Fall, welcher oben beschrieben ist, nimmt die Menge von Daten, welche in dem Clientpuffer akkumuliert sind, ab, wenn eine bestimmte Zeit vorübergegangen ist, aufgrund der Abnahme in der Kommunikationsbandbreite. Somit benötigt der Server einige Zeit, die Abnahme in der Menge von Pufferdaten zu erkennen, so dass es für den Server nicht möglich ist, schnell an die Abnahme in der Kommunikationsbandbreite zu adaptieren. Somit tritt eine Zeitüberschreitung des Clientpuffers auf, bevor der Server die Bitrate verringert oder andere geeignete Maßnahmen vornimmt. Dies verursacht Video- oder Audiounterbrechungen.
  • US-A-2007/0044783 , US-A-6,105,065 und US-A-2002/0071388 beschreiben Vorrichtungen des Standes der Technik.
  • Es ist wünschenswert, eine Kommunikationsverarbeitungsvorrichtung, ein Datenkommunikationssystem und einen Kommunikationsverarbeitungsverfahren vorzusehen, die es Daten erlauben, in einem optimalen Übertragungsmodus in der Übertragung und dem Empfang von Streamingdaten übertragen zu werden.
  • Noch genauer ist es wünschenswert, eine Kommunikationsverarbeitungsvorrichtung, ein Datenkommunikationssystem und ein Kommunikationsverarbeitungsverfahren vorzusehen, mit welchen ein Server einen optimalen Wert der Bitrate von Daten voraussagt, welche übertragen werden, unter Berücksichtigung von Faktoren wie beispielsweise einer Blockade auf einem Kommunikationspfad oder einer Störung auf einer Kommunikationsverbindung, und mit welchen die Bitrate dynamisch auf der Basis des vorhergesagten Wertes gesteuert wird, so dass ein Datenstreaming in einem optimalen Datenübertragungsmodus ausgeführt wird.
  • Verschiedene jeweilige Aspekte und Merkmale der Erfindung sind in den angehängten Ansprüchen definiert. Merkmale der abhängigen Ansprüche können mit Merkmalen der unabhängigen Ansprüche, wie geeignet, kombiniert werden, und nicht nur wie explizit in den Ansprüchen dargelegt ist.
  • Ausführungsformen der vorliegenden Erfindung beziehen sich auf eine Kommunikationsverarbeitungsvorrichtung, ein Datenkommunikationssystem und ein Kommunikationsverarbeitungsverfahren, die eine geeignete Bitratensteuerung in der Übertragung und dem Empfang von Streamingdaten erlauben.
  • Gemäß einer Ausführungsform der vorliegenden Erfindung wird ein Server gemäß Anspruch 1, welcher hier angehängt ist, vorgesehen.
  • In dem Server kann der Durchsatzrechner konfiguriert sein, um eine effektive Datenübertragungs- und Empfangsperiode entsprechend einer Periode von einem Start einer sukzessiven Datenübertragung basierend auf einer Fenstergröße bis zu einem Empfang einer Empfangsmeldung für die sukzessive übertragenen Daten zu definieren, um eine Vielzahl von Teilen von Abtastdaten zu erhalten, welche mit einer Vielzahl von effektiven Datenübertragungs- und Empfangsperiode assoziiert sind, und um einen maximalen Durchsatz auf der Basis von einer Vielzahl von Teilen von Abtastdaten ausschließlich von Teilen von Daten zu berechnen, welche als Ausnahmewerte aufweisend unter der Vielzahl von Teilen von Abtastdaten, welche erhalten wurden, bestimmt wurden.
  • In dem Server kann der Bitratensetzer konfiguriert sein, um eine Bitrate auf der Basis des Übergangs einer abgeschätzten Puffermenge eines Clientpuffers einzustellen, und um die Bitrate innerhalb eines Bereichs von bis zu einer oberen Grenze der maximal erlaubten Bitrate entsprechend dem maximalen Durchsatz zu erhöhen, welcher durch den Durchsatzrechner berechnet wurde, wenn die abgeschätzte Puffermenge größer oder gleich einem vorbestimmten Schwellenwert ist.
  • Weiterhin kann in dem Server der Bitrateneinsteller konfiguriert sein, um die Menge des Clientpuffers durch Berechnung gemäß einer Gleichung zu bestimmen, welche ausgedrückt wird als die bestimmte Puffermenge des Clientpuffers = B_cli + D_serv – R·T, wobei die folgende Information (a) bis (d) verwendet wird:
    • (a) eine Puffermenge B_cli, ausgedrückt in Bytes, welche von dem Client zu der Zeit des Starts der Kommunikation gemeldet wird;
    • (b) eine Zeit T, ausgedrückt in Sekunden, abgelaufen seit einem Start der Wiedergabe durch den Client;
    • (c) eine Menge D_serv, ausgedrückt in Bytes, von Daten, welche von dem Server während der vorübergegangenen Zeit T seit dem Start der Wiedergabe durch den Client übertragen werden; und
    • (d) eine Wiedergaberate R, ausdrückt in Bytes pro Sekunde, des Inhalts, welcher von dem übertragenen Inhalt erhältlich ist.
  • In dem Server kann der Datentransceiver konfiguriert sein, um Kommunikationsbandbreiteninformation von einem Zugriffspunkt zu empfangen, der als ein Zwischenstück für Kommunikationen mit dem Client wirkt, wobei die Kommunikationsbandbreiteninformation sich auf eine Kommunikationsbandbreite zwischen dem Zugriffspunkt und dem Client bezieht. In diesem Fall ist der Bitrateneinsteller konfiguriert, um eine Übertragungsbitrate auf der Basis der Kommunikationsbandbreiteninformation einzustellen.
  • Weiterhin enthält in dem Server die Kommunikationsbandbreiteninformation z. B. Informationen, die auf der Basis von Daten erzeugt wird, welche sich auf zumindest eines von einer Hin- und Rücklaufzeit, einem Stärkenindikator eines empfangenen Signals und einer Übertragungsrate von Kommunikationen zwischen dem Zugriffspunkt und dem Client beziehen. Gemäß einer weiteren Ausführungsform der vorliegenden Erfindung wird ein Datenkommunikationssystem gemäß Anspruch 8, welcher hier angehängt ist, vorgesehen.
  • Mit einer weiteren Ausführungsform der vorliegenden Erfindung wird ein Kommunikationsverarbeitungsverfahren gemäß Anspruch 9, welcher hier angehängt ist, vorgesehen.
  • In dem Kommunikationsverarbeitungsverfahren kann der Durchsatzberechnungsschritt eine effektive Datenübertragungs- und Empfangsperiode entsprechend einer Periode von einem Start einer sukzessiven Datenübertragung basierend auf einer Fenstergröße bis zum Empfang einer Empfangsmeldung für die sukzessive übertragenen Daten definieren, und einen maximalen Durchsatz auf der Basis der Länge der effektiven Datenübertragungs- und Empfangsperiode und der Menge der übertragenen Daten berechnen.
  • Alternativ kann in dem Kommunikationsverarbeitungsverfahren der Durchsatzberechnungsschritt eine effektive Datenübertragungs- und Empfangsperiode entsprechend einer Periode von einem Start der sukzessiven Datenübertragung basierend auf einer Fenstergröße bis zum Empfang einer Empfangsmeldung für die sukzessive übertragenen Daten definieren, eine Vielzahl von Teilen von Abtastdaten erhalten, welche mit einer Vielzahl von effektiven Datenübertragungs- und Empfangsperioden assoziiert ist, und einen maximalen Durchsatz auf der Basis einer Vielzahl von Teilen von Abtastdaten ausschließlich von Teilen von Daten berechnen, welche als Ausnahmewerte unter der Vielzahl von Teilen von erhaltenen Abtastdaten bestimmt wurden, berechnen.
  • In dem Kommunikationsverarbeitungsverfahren kann der Bitrateneinstellschritt eine Bitrate auf der Basis des Übergangs einer abgeschätzten Puffermenge eines Clientpuffers einstellen, und kann die Bitrate innerhalb eines Bereichs von bis zu einer oberen Grenze der maximal erlaubten Bitrate entsprechend dem maximalen Durchsatz erhöhen, welcher in dem Durchsatzberechnungsschritt berechnet wird, wenn die geschätzte Puffermenge größer oder gleich einem vorbestimmten Schwellenwert ist.
  • Weiterhin kann in dem Kommunikationsverarbeitungsverfahren der Bitrateneinstellschritt die Menge des Clientpuffers durch Berechnung gemäß einer Gleichung abschätzen, welche ausgedrückt wird als die abgeschätzte Puffermenge des Clientpuffers = B_cli + D_serv – R·T, unter Verwendung der folgenden Information (a) bis (d):
    • (a) eine Puffermenge B_cli, ausgedrückt in Bytes, welche von dem Client zu der Zeit eines Starts der Kommunikation gemeldet wird;
    • (b) eine Zeit T, ausgedrückt in Sekunden, welche seit einem Start der Wiedergabe durch den Client vorübergegangen ist;
    • (c) eine Menge D_serv, ausgedrückt in Bytes, von Daten, welche von dem Server während der vorübergegangenen Zeit T seit dem Start der Wiedergabe durch den Client übertragen werden; und
    • (d) eine Wiedergaberate R, ausdrückt in Bytes pro Sekunde, des Inhalts, welcher von dem übertragenen Inhalt erhältlich ist.
  • In dem Kommunikationsverarbeitungsverfahren kann das Kommunikationsverarbeitungsverfahren weiterhin den Schritt des Empfangen von Kommunikationsbandbreiteinformation von einem Zugriffspunkt enthalten, welcher als ein Zwischenstück für Kommunikationen mit dem Client wirkt, wobei sich die Kommunikationsbandbreiteinformation auf eine Kommunikationsbandbreite zwischen dem Zugriffspunkt und dem Client bezieht. In diesem Fall stellt der Bitrateneinstellschritt eine Übertragungsbitrate auf der Basis der Kommunikationsbandbreiteninformation ein.
  • Weiterhin kann in dem Kommunikationsverarbeitungsverfahren die Kommunikationsbandbreiteinformation Informationen enthalten, welche auf der Basis von Daten erzeugt wird, welche sich auf zumindest eines bezieht von einer Hin- und Rücklaufzeit, einem Stärkeindikator eines empfangenen Signals und einer Übertragungsrate der Kommunikation zwischen dem Zugriffspunkt und dem Client.
  • Weitere Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung werden aus der folgenden detaillierten Beschreibung der Ausführungsformen mit Bezug auf die begleitenden Zeichnungen offensichtlich werden. In dieser Beschreibung bezieht sich ein System auf eine logische Kombination von einer Vielzahl von Vorrichtungen, ungeachtet dessen, ob die individuellen Komponentenvorrichtungen innerhalb des gleichen Gehäuses vorgesehen sind.
  • Gemäß bestimmten Ausführungsformen der vorliegenden Erfindung wird ein maximaler Durchsatz auf der Basis eines gemessenen Wertes berechnet, welcher mit einer Periode der sukzessiven Übertragung von Daten und einem Empfang einer Empfangsmeldung assoziiert ist, d. h. ein gemessener Wert, welcher mit einer "effektiven Datenübertragungs- und Empfangsperiode" assoziiert ist, und eine Übertragungsbitrate wird auf der Basis des maximalen Durchsatze gesteuert. Das heißt, ein maximaler Durchsatz wird auf der Basis einer Datenübertragungs- und Empfangsperiode berechnet, welche nicht eine "ineffektive Datenübertragungs- und Empfangsperiode" enthält, die nicht tatsächlich zu der Datenübertragung und dem Empfang beiträgt, und eine Bitrate wird innerhalb eines Bereichs von bis zu einer oberen Grenze einer maximal erlaubten Bitrate entsprechend dem maximalen Durchsatz gesteuert. Dies erlaubt ein Steuern der Bitrate in Anbetracht einer tatsächlichen Übertragungsrate. Dementsprechend können Daten innerhalb eines Bereichs von bis zu einer oberen Grenze einer maximal erlaubten Bitrate übertragen werden, mit welcher Daten zuverlässig ohne übermäßiges Erhöhen oder Verringern der Bitrate übertragen werden können.
  • Weiterhin wird gemäß bestimmter Ausführungsformen der vorliegenden Erfindung ein maximaler Durchsatz auf der Basis eines Empfangsintervalls von sukzessive übertragenen Paketen berechnet, welche an einem Client gemessen werden, und eine Bitrate wird innerhalb eines Bereichs von bis zu einer oberen Grenze einer maximal erlaubten Bitrate entsprechend dem maximalen Durchsatz gesteuert. Das heißt, ein maximaler Durchsatz wird auf der Basis eines tatsächlich gemessenen Empfangsintervalls von sukzessive übertragenen Paketen berechnet, und eine Bitrate wird innerhalb eines Bereichs von bis zu einer oberen Grenze einer maximal erlaubten Bitrate entsprechend dem maximalen Durchsatz gesteuert. Dies erlaubt ein Steuern der Bitrate in Anbetracht einer tatsächlichen Übertragungsbitrate. Dementsprechend können Daten innerhalb eines Bereichs von bis zu einer oberen Grenze einer maximal erlaubten Bitrate übertragen werden, bei welcher Daten zuverlässig ohne übermäßiges Erhöhen oder Verringern der Bitrate übertragen werden können.
  • Weiterhin wird gemäß bestimmter Ausführungsformen der vorliegenden Erfindung zusätzlich zu einem Steuern einer Bitrate auf der Basis eines maximalen Durchsatzes, welcher auf der Basis der tatsächlichen Messung von Daten berechnet wird, welche übertragen und empfangen werden, die Bitrate auch auf der Basis der Kommunikationsbandbreiteninformation gesteuert, welche sich auf eine Kommunikationsbandrate bezieht, welche durch einen Zugriffspunkt (AP) gemessen wird, wobei sich die Kommunikationsbandbreiteininformation auf einer Kommunikationsbandbreite von drahtlosen Kommunikationen zwischen dem Zugriffspunkt und einem Client bezieht, wie beispielsweise ein Hin- und Rücklaufzeit, ein Stärkeindikator eines empfangenen Signals oder eine Übertragungsrate. Dies erlaubt ein Steuern der Bitrate, um so sofort auf eine Variation des Status von drahtlosen Kommunikationen zu adaptieren.
  • Die Erfindung wird nun mittels eines Beispiels mit Bezug auf die begleitenden Zeichnungen beschrieben werden, in welche gleiche Teile durch gleiche Bezugszeichen bezeichnet sind, und in welchen:
  • 1 ist ein Diagramm, welches ein Beispiel einer Netzwerkkonfiguration für Ausführungsformen der vorliegenden Erfindung zeigt;
  • 2 ist ein Blockdiagramm eines Servers und eines Clients, die als eine Übertragungsvorrichtung und eine Empfangsvorrichtung von Streamingdaten wirken, in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung;
  • 3 ist ein Diagramm, welches eine Sequenz eines Prozesses des Verteilens von Daten über eine TCP Verbindung zeigt, welche zwischen einem Server und einem Client in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung aufgebaut wird;
  • 4 ist ein Diagramm, welches einen Prozess des sukzessiven Verteilens von Daten auf der Basis einer Fenstergröße in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung zeigt;
  • 5 ist ein Flussdiagramm einer Sequenz eines Prozesses, welcher durch einen Server in einer ersten Ausführungsform der vorliegenden Erfindung ausgeführt wird;
  • 6 ist ein Diagramm zum Erläutern einer Verarbeitung, welche durch einen Bitrateneinsteller in der ersten Ausführungsform der vorliegenden Erfindung ausgeführt wird;
  • 7 ist ein Flussdiagramm einer Sequenz eines Prozesses, welcher durch den Bitrateneinsteller in der ersten Ausführungsform der vorliegenden Erfindung ausgeführt wird;
  • 8 ist ein Blockdiagramm, welches die Konfiguration eines Servers und eines Clients zeigt, die als eine Übertragungsvorrichtung und eine Empfangsvorrichtung von Streamingdaten in einem zweiten Beispiel zeigen, welches keinen Teil der vorliegenden Erfindung bildet;
  • 9 ist ein Diagramm zum Erläutern von Daten, in welchen eine Dringendflagge eingestellt wird, welche in einem Datenübertragungs- und Empfangsprozess zwischen dem Server und dem Client in dem zweiten Beispiel übertragen werden;
  • 10 ist ein Flussdiagramm einer Sequenz eines Prozesses, welcher durch den Server in dem zweiten Beispiel ausgeführt wird;
  • 11 ist ein Flussdiagramm eines Prozesses, welcher durch den Client in der zweiten Ausführungsform ausgeführt wird;
  • 12 ist ein Diagramm zum Erläutern einer Zugriffpunkt-(AP)-Entdeckungssequenz, welche durch einen Server ausgeführt wird;
  • 13 ist ein Blockdiagramm, welches die Konfigurationen eines Servers und eines Clients zeigt, die als eine Übertragungsvorrichtung und eine Empfangsvorrichtung in einer dritten Ausführungsform der vorliegenden Erfindung wirken;
  • 14 ist ein Diagramm zum Erläutern einer Sequenz eines Prozesses, welcher durch einen Bitrateneinsteller in der dritten Ausführungsform der vorliegenden Erfindung ausgeführt wird;
  • 15 ist ein Flussdiagramm einer Sequenz eines Prozesses, welcher durch den Bitrateneinsteller in der dritten Ausführungsform der vorliegenden Erfindung ausgeführt wird; und
  • 16 ist ein Diagramm, welches ein Beispiel einer Hardwarekonfiguration eines Servers, eines Clients und eines Zugriffspunktes zeigt.
  • Nun werden Kommunikationsverarbeitungsvorrichtungen, Datenkommunikationssysteme und Kommunikationsverarbeitungsverfahren gemäß den Ausführungsformen der vorliegenden Erfindung mit Bezug auf die Zeichnungen beschrieben werden.
  • Als erstes wird ein Beispiel einer Netzwerkkonfiguration für Ausführungsformen der vorliegenden Erfindung mit Bezug auf 1 beschrieben werden. Die Netzwerkkonfiguration, welche in 1 gezeigt ist, ist z. B. eine Heimnetzkonfiguration, in welcher ein Server 101 mit Clients 121 bis 124 über ein Netzwerk 110 verbunden ist. Der Server 101 fungiert als Inhaltsverteilungsvorrichtung, die eine Verarbeitung in Reaktion auf Verarbeitungsanfragen ausführt, welche von verschiedenen Clientvorrichtungen übertragen werden. Als Beispiele von Clientvorrichtungen zeigt 1 Personalcomputer (PC) 121 und 122, ein tragbares Endgerät 123 und eine Wiedergabevorrichtung 124. Jedoch können verschiedene andere Typen von elektronischen Vorrichtungen und elektrischen Haushaltsgeräten als Clientvorrichtungen verbunden werden.
  • Der Client (tragbares Endgerät) 123 und der Client (Wiedergabevorrichtung) 124 führen drahtlose Kommunikationen über einen Zugriffspunkt (AP) 131 aus. Die Clients (PSs) 121 und 122 (ihren Kommunikationen mit dem Server 101 über ein verkabeltes LAN aus. Zum Beispiel führt der Client (PC) 121 Kommunikationen gemäß dem 100base-TX-Standard aus und der Client (PC) 122 führt Kommunikationen gemäß dem 100base-T-Standard mit dem Server 101 aus. Der Client (tragbares Endgerät) 123 und der Client (Wiedergabevorrichtung) 124 führen Kommunikationen mit dem Server 101 über den Zugriffspunkt (AP) 131 aus. Der Zugriffspunkt (AP) 131 und der Client (tragbares Endgerät) 123 führen drahtlose LAN-Kommunikationen miteinander gemäß dem IEEE 802.11b Standard aus. Der Zugriffspunkt (AP) 131 und der Client (Wiedergabevorrichtung) 124 führen Kommunikationen miteinander gemäß dem IEEE 802.11g Standard aus.
  • Wie oben beschrieben, wenn Kommunikationen mit dem Server 101 ausgeführt werden, z. B. wenn eine Verteilung der Videodaten von dem Server 101 ausgeführt wird, führen die Clients 121 bis 124 Datenkommunikationen gemäß den Kommunikationsstandards aus, welche jeweils durch die Clients 121 bis 124 unterstützt werden, und empfangen Daten mit jeweils unterschiedlichen Bitraten. Eine Verarbeitung, welche durch den Server 101 in Reaktion auf Anfragen von Clients ausgeführt wird, enthält z. B. einen Inhaltsverteilungsservice des Vorsehens von Inhalt, welcher in einer Speichervorrichtung, wie beispielsweise einer Festplatte oder einer DVD gespeichert ist, welcher auf dem Server 101 montiert ist, oder Live-Inhalte, welche über einen Tuner des Servers 101 empfangen werden.
  • Das Netzwerk 101 überträgt und empfangt Kommunikationspakete wie beispielsweise Ethernet®-Rahmen über ein Netzwerk 100. Noch genauer überträgt ein Client einen Ethernetrahmen, welcher Verarbeitungsanfrageinformation in einem Datenabschnitt davon zu dem Server 101 überträgt, um eine Datenverarbeitungsanfrage zu dem Server 101 auszugeben. In Reaktion auf den erhaltenen Verarbeitungsanfragerahmen führt der Server 101 eine Datenverarbeitung aus und speichert das Ergebnis in Kommunikationspaketen und überträgt die Kommunikationspakete zu Clients.
  • Der Server 101 baut TCP (Transmission Control Protocol) Verbindungen individuell mit den Clients 121 bis 124 auf, und überträgt z. B. Multimediadaten, welche Videodaten enthalten, durch eine Streamingdatenverteilung. In dieser Ausführungsform bezieht ein Verteilen der Daten von dem Server 101 zu den Clients 121 bis 124 über die TCP Verbindungen eine dynamische Bitratensteuerung ein.
  • Die dynamische Bitratensteuerung enthält die Schritte des Berechnens von maximalen Durchsätzen der Datenkommunikationen zwischen dem Server und den individuellen Clients und ein Steuern der Bitraten, um Bitraten entsprechend den maximalen Durchsätzen einzustellen, welche als maximal erlaubte Bitraten berechnet wurden. Nun werden Ausführungsformen der dynamischen Bitratensteuerung im Detail beschrieben werden.
  • Erste Ausfühungsform
  • 2 ist ein Blockdiagramm zum Erläutern von Funktionen eines Servers 200, der Streamingdaten verteilt, und eines Clients 300, der Streamingdaten empfängt und abspielt. Der Server 200 und der Client 300 bauen eine TCP Verbindung auf und führen Kommunikationen miteinander aus.
  • Der Server 200 enthält eine Inhaltsbereitstellungseinheit 201, in welcher Inhalt, der zu übertragen ist, gespeichert wird. Die Inhaltbereitstellungseinheit 201 enthält eine Speichervorrichtung, wie beispielsweise eine Festplatte oder eine DVD, oder weist eine Tunerfunktion zum Empfangen von Inhalt von außerhalb auf. Inhalt, der zu dem Client 300 zu übertragen ist, wird von der Inhaltbereitstellungseinheit 201 an einen Datenprozessor 202 eingegeben.
  • Der Datenprozessor 202 führt eine Verarbeitung zum Erzeugen von Daten durch, die zu übertragen sind, wie beispielsweise eine Codierung. In der Verarbeitung zum Erzeugen von Daten, die zu übertragen sind, werden codierte Daten in Übereinstimmung mit einer Bitrate erzeugt, die durch einen dynamischen Ratencontroller 210 bestimmt wird. Alternativ können Teile von Daten basierend auf einer Vielzahl von Bitraten im Voraus vorbereitet werden, so dass Daten, die zu übertragen sind, von den Teilen von Daten basierend auf der Vielzahl von Bitraten ausgewählt werden können.
  • Der dynamische Ratencontroller 210 enthält einen Durchsatzberechner 211 und einen Bitrateneinsteller 212. Der Durchsatzberechner 211 überwacht den Status der Kommunikationen, die zwischen einem Datentransceiver 204 des Servers und einem Datentransceiver 301 des Clients ausgeführt werden, und berechnet einen Durchsatz auf der Basis der Ergebnisse der Überwachung. Der Bitrateneinsteller 212 bestimmt eine Übertragungsrate für die Datenübertragung zu dem Client 300 auf der Basis des Durchsatzes, welcher durch den Durchsatzberechner 211 berechnet wird, und meldet die Bitrate dem Datenprozessor 202. Eine Verarbeitung, welche durch den dynamischen Ratencontroller 210 ausgeführt wird, wird später im Detail beschrieben werden.
  • Der Datenprozessor 202 codiert Daten, die zu übertragen sind, in Übereinstimmung mit der Bitrate, welche durch den Bitrateneinsteller 212 eingestellt wird, oder wählt codierte Daten in Übereinstimmung mit der Bitrate aus, welche durch den Bitrateneinsteller 212 eingestellt wird, und gibt die codierten Daten einem Übertragungspuffer 203 ein. Der Datentransceiver 204 überträgt Daten (Pakete), welche in dem Übertragungspuffer 203 akkumuliert sind, zu dem Client 300 über die TCP Verbindung, welche mit dem Client 300 aufgebaut wird.
  • Der Client 300 empfängt Streamingdaten (Pakete) von dem Server 200 über den Datentransceiver 301 und speichert die Daten in einem Empfangspuffer 302. Die Daten, welche in dem Empfangspuffer 302 gespeichert werden, werden sequentiell erhalten und durch einen Wiedergabeprozessor 303 decodiert, z. B. expandiert, wenn die Daten komprimiert worden sind, oder entschlüsselt, wenn die Daten verschlüsselt worden sind, und die decodierten Daten werden an einer Ausgabeeinheit 304, wie beispielsweise einer Anzeige, ein Lautsprecher oder dergleichen ausgegeben.
  • 3 ist ein Diagramm, welches eine Sequenz eines Kommunikationsprozesses zeigt, welcher zwischen einem Server und einem Client ausgeführt wird. Als erstes wird in Schritt S11 eine TCP Verbindung zwischen dem Server und dem Client aufgebaut. Dann meldet in Schritt S12 der Client dem Server eine Puffermenge. Die Meldung der Puffermenge kann in dem Prozess des Aufbauens einer TCP Verbindung enthalten sein.
  • In dieser Ausführungsform wird eine maximale Menge eines Anwendungspuffers eines Clients, der Streamingdaten empfangt, d. h. eine maximale Menge eines Anwendungspuffers, welcher zum Empfangen von Streamingdaten vorgesehen ist, dem Server an dem Beginn des Streamens gemeldet. In 2 ist der Empfangspuffer 302 ein Anwendungspuffer eines Clients, der Streamingdaten empfängt, und eine maximale Menge des Empfangspuffers 302 wird dem Server gemeldet. Zum Beispiel, wenn Streamingdaten dem HTTP entsprechen, meldet der Client die Anwendungspuffermenge in einem HTTP Header. Der Server verwendet die Puffermenge, die von dem Client gemeldet wird, als einen Index zum Erhöhen oder Verringern der Bitrate unter der Steuerung des dynamischen Ratencontrollers 210. Dieser Prozess wird später beschrieben werden. Der Client meldet dem Server nur einmal beim Start des Streamens eine Puffermenge.
  • Dann verteilt in Schritt S13 der Server Streamingdaten an den Client. In diesem Prozess des Übertragens von Streamingdaten steuert der dynamische Ratenkontroller 210 des Servers 200, welcher in 2 gezeigt ist, dynamisch die Übertragungsbitrate, so dass die Streamingdaten mit einer optimalen Bitrate übertragen werden. Der Prozess wird später noch genauer beschrieben werden. Wenn die Übertragung von allen der Streamingdaten beendet ist, wird in Schritt 12 die Verbindung zwischen dem Server und dem Client geschlossen, und der Prozess wird dann verlassen.
  • Als nächstes wird der Prozess des Steuern der Bitrate von Übertragungsdaten, welcher durch den dynamischen Ratencontroller 210 des Servers 200, welcher in 2 gezeigt ist, ausgeführt wird, im Detail mit Bezug auf 4 bis 6 beschrieben werden. Als erstes wird ein Durchsatzberechnungsprozess, welcher durch den Durchsatzberechner 211 des dynamischen Ratencontrollers 210 ausgeführt wird, mit Bezug auf 4 beschrieben werden.
  • 4 ist ein Sequenzdiagramm, welches den Datenübertragungsprozess in Schritt S13, welcher in 3 gezeigt ist, noch genauer zeigt. Der Server speichert Streamingverteilungsdaten in TCP Paketen (TCP Segmente) und überträgt die TCP Pakete an den Client. In 4 stellen Daten 1 bis 8 individuelle Pakte dar, welche übertragen werden. In TCP Kommunikationen überträgt der Client Empfangsbestätigungen (ack) an den Server. In 4 stellrn ack1 bis ack4 Empfangsbestätigungen dar, welche von dem Client zu dem Server übertragen werden. Die Empfangsbetätigungen (ack), welche von dem Client zu dem Server übertragen werden, sind nicht notwendigerweise von dem Client individuell in Assoziierung mit allen Übertragungsdaten übertragen worden. Der Client kann von einer Übertragung von Empfangsbestätigungen (ack) absehen, wenn die Zeit das nicht zulässt. In 4 ist ack1 eine Empfangsbestätigung (ack) für Daten 1 und Daten 2, und ack2 ist eine Empfangsbestätigung für Daten 3 und Daten 4.
  • Daten werden sukzessive von dem Server zu dem Client auf der Basis einer Fenstergröße übertragen, welche dem Server von dem Client präsentiert wird. In dem Beispiel, welches in 4 gezeigt ist, werden die Daten 1 bis die Daten 4 sukzessive übertragen. Noch genauer, wenn ein Server ein Paket übermittelt, eine Empfangsbestätigung für das Paket von dem Client empfangt und dann ein nächstes Paket überträgt, nimmt der Durchsatz ab, so dass die Effizienz der Datenübertragung reduziert wird.
  • Um diese Situation zu vermeiden wird eine Fenstergröße, welche eine bestimmte Datenmenge repräsentiert, die auf einmal übertragen werden kann, bestimmt und Pakete werden sukzessive auf der Basis der Fenstergröße übertragen. Die Fenstergröße wird von dem Client zu dem Server z. B. gemeldet, wenn eine Sitzung aufgebaut wird. Das heißt, eine Fenstergröße, welche eine Menge von Daten repräsentiert, die auf einmal durch den Client empfangen werden kann, wird dem Server gemeldet. Der Server überträgt Pakete sukzessive, welche eine Datenmenge entsprechend der Fenstergröße aufweisen. Weiterhin meldet der Client eine aktualisierte Fenstergröße in einer Empfangsbestätigung (ack), welche von dem Client zu dem Server übertragen wird, und der Server ändert eine Menge der sukzessiven Übertragung von Daten auf der Basis der aktualisierten Fenstergröße.
  • Wenn Daten auf der Basis der Fenstergröße übertragen werden, findet eine Datenübertragung von dem Server zu dem Client intermittierend statt, wie in 4 gezeigt ist. Zum Beispiel ist eine Periode A, welche in 4 gezeigt ist, eine Periode der sukzessiven Übertragung von Daten bis zum Empfang der letzten Bestätigung (ack) für die sukzessive übertragenen Daten.
  • In 4 ist eine Periode B eine Warteperiode von dem Ende der Periode A an, d. h. die Empfangszeit der letzten Empfangsbestätigung (ack) für den Satz von TCP Daten, welche in der Periode A übertragen werden, bis zum Start der Übertragung eines nächsten Satzes von TCP Daten. Eine Periode C ist eine Periode der Übertragung von einem nächsten TCP Datensatz nach der Periode B und eines Empfangs der Empfangsbestätigungen (ack).
  • In dem Durchsatzberechnungsverfahren, was bisher verwendet worden ist, ist es der Fall gewesen, einen Durchsatz einfach durch Teilen der Menge der Übertragungsdaten durch eine Übertragungszeit zu berechnen. Zum Beispiel im Hinblick auf eine Datenübertragungssequenz, welche in 3 gezeigt ist, ist es der Fall gewesen, einen Durchsatz in den Perioden A bis C zu berechnen durch:
    Durchsatz = (Menge der übertragenen Daten 1 bis 8)/(Perioden A + B + C). Dieses Verfahren der Durchsatzberechnung liefert keinen Wert, welcher größer ist, als ein Wert, welcher der Menge von Daten, die von dem Server übertragen werden, entspricht.
  • Jedoch muss in der TCP Datenübertragung, wenn die Übertragungsbitrate gesteuert wird, so dass Daten mit einer höheren Bitrate, einer maximal erlaubten Bitrate, übertragen werden können, d. h. zu welchem Ausmaß die Bitrate erhöht werden kann, bestimmt werden.
  • In dieser Ausführungsform wird ein maximaler Durchsatz durch Teilen der Menge der übertragenen Daten durch eine Zeit vorhergesagt, welche nicht in der Periode B in 4 enthalten ist, und eine maximal erlaubte Bitrate wird entsprechend dem maximalen Durchsatz bestimmt. Die Periode B in 4 ist eine Periode, in welcher der Server nicht Daten zu dem Client überträgt. Wenn die Periode B in der Messung einer Periode zum Berechnen eines Durchsatzes enthalten ist, ist eine Periode, in welcher Daten tatsächlich nicht übertragen oder empfangen werden, in der Messung eines Durchsatzes einbezogen, so dass eine Periode, die nicht zu dem tatsächlichen Durchsatz beiträgt, für die Berechnung eines Durchsatzes verwendet wird. Das heißt, wenn ein maximaler Durchsatz berechnet wird, wobei die Periode B nicht enthalten ist, in welcher Daten nicht übertragen oder empfangen werden, nimmt der maximale Durchsatz ab. Das heißt, eine Messung des TCP Durchsatzes liefert in diesem Fall einen Wert, welcher größer oder gleich zu einer Bitrate des Inhalts ist.
  • Gemäß dieser Ausführungsform basiert eine Berechnung eines Durchsatzes auf einer Periode, welche nicht eine ineffektive Datenübertragungs- und Empfangsperiode, wie beispielsweise die Periode B enthält. Das heißt, eine Berechnung eines Durchsatzes basiert auf Perioden von sukzessiver Datenübertragung auf der Basis der Fenstergröße und Empfangsbestätigungen (ack) davon, wie beispielsweise die Perioden A und C, welche in 4 gezeigt sind. Noch genauer wird eine Vielzahl von Beispielen für eine Durchsatzberechnung z. B. berechnet wie folgt:
    Beispiel 1 zur Durchsatzberechnung = (Menge der übertragenen Daten 1 bis 4)/(Perioden A + B – B)
    Beispiel 2 zur Durchsatzberechnung = (Menge der übertragenen Daten 5 bis 8)/(Perioden C + D – D)
    ...
    Beispiel n zur Durchsatzberechnung
  • Dann wird ein maximaler Durchsatz auf der Basis von diesen Beispielen zur Durchsatzberechnung berechnet. In der obigen Gleichung ist D eine Periode, die nach der Periode C auftritt, welche in 4 gezeigt ist, in welcher Daten nicht übertragen werden.
  • Wie oben beschrieben werden gemäß dieser Ausführungsform nur "effektive Datenübertragungs- und Empfangsperioden", d. h. Perioden, in welchen sukzessive Daten übertragen werden und Empfangsbestätigungen (ack) empfangen werden, wie beispielsweise die Perioden A und C, welche in 4 gezeigt sind, für den Prozess des Berechnens eines Durchsatzes verwendet, und eine "ineffektive Datenübertragungs- und Empfangsperiode", wie beispielsweise die Periode B, welche in 4 gezeigt ist, wird nicht für den Prozess des Berechnen eines Durchsatzes verwendet. Gemäß diesem Prozess werden nur effektive Perioden, in welchen Datenübertragung und Empfangsbestätigung (ack) tatsächlich in einer TCP Sitzung stattfindet, zur Berechnung eines Durchsatzes verwendet, so dass ein wahrer maximaler TCP Durchsatz gemessen werden kann.
  • Wie oben beschrieben, werden während einer Übertragung von Datenpaketen in einer TCP Sitzung Daten sukzessive auf der Basis einer Fenstergröße übertragen. das heißt, wenn das Fenster nicht vollständig auf der Clientseite ist, werden Datenpakete sukzessive übertragen, ohne auf Empfangsbestätigungen (ack) zu warten. Somit treten "effektive Datenübertragungs- und Empfangsperioden" des Übertragens von sukzessiven Daten und Empfangen von Empfangsbestätigungen (ack), wie beispielsweise die Periode A oder C, welche in 4 gezeigt ist, und "ineffektive Datenübertragungsperioden", wie beispielsweise die Periode B abwechselnd auf.
  • TCP Paketdaten, die in einer "effektiven Datenübertragungs- und Empfangsperiode" des Übertragens sukzessiver Daten und Empfangen einer Empfangsbestätigung übertragen worden sind, wie beispielsweise die Periode A oder C, welche in 4 gezeigt ist, werden als ein "TCP Datensatz" bezeichnet. Effektive Datenübertragungs- und Empfangsperiode, welche mit individuellen TCP Datensätzen assoziiert sind, werden deutlich durch die Fenstergröße oder unmittelbare Blockaden beeinflusst. Somit tendieren Werte dazu, deutlich zu variieren, so dass die Ergebnisse der Messung eines maximalen Durchsatzes nicht stabil sind. In dieser Ausführungsform, um diese Situation zu vermeiden, wie zuvor beschrieben, wird eine Vielzahl von Beispielen zur Durchsatzberechnung berechnet wie folgt:
    Beispiel 1 zur Durchsatzberechnung = (Menge der übertragenen Daten 1 bis 4)/(Perioden A + B – B)
    Beispiel 2 zur Durchsatzberechnung = (Menge der übertragenen Daten 5 bis 8)/(Perioden C + D – D)
    ...
    Beispiel n zur Durchsatzberechnung
  • Ein Durchsatz wird auf der Basis von diesen Beispielen zur Durchsatzberechnung berechnet. Unter den Daten der Beispiele zur Durchsatzberechnung werden Messergebnisse, die extrem von den anderen Beispielsdaten abweichen, als ungewöhnliche Werte ausgeschlossen.
  • Die Prozedur eines Berechnungsprozesses des maximalen Durchsatzes, welche durch den Durchsatzberechner 211 des dynamischen Ratencontrollers 210 des Servers, welcher in 2 gezeigt ist, in dieser Ausführungsform ausgeführt wird, wird mit Bezug auf ein Flussdiagramm beschrieben werden, welches in 5 gezeigt ist. Der Durchsatzberechner 211 betrachtet eine Periode von dem Start der sukzessiven Datenübertragung basierend auf einer Fenstergröße bis zum Empfang einer Empfangsbestätigung (ack) für die sukzessive übertragenen Daten als eine effektive Datenübertragungs- und Empfangsperiode, und berechnet einen maximalen Durchsatz auf der Basis der Länge der effektiven Datenübertragungs- und Empfangsperiode und der Menge der Daten, die übertragen werden. 5 ist ein Flussdiagramm, welches die Prozedur eines Prozesses zeigt, in welchem der Server 200 eine Verbindung mit dem Client aufbaut, Kommunikationen ausführt, und die TCP Verbindung schließt.
  • Als erstes baut in Schritt S101 der Server eine TCP Verbindung mit einem Client auf, an welchen Streamingdaten zu verteilen sind. Zu der Zeit des Aufbaus der Verbindung empfangt der Server einen Bericht einer Puffermenge (entsprechend einer Fenstergröße) von dem Client.
  • Wenn in Schritt S102 bestimmt wird, dass eine Datenübertragungsanfrage von einer Anwendung einer oberen Schicht empfangen worden ist, startet in Schritt S103 der Server eine Übertragung von TCP Segmenten (Paketen) und speichert eine Übertragungsstartzeit Ts in einem Speicher. Die Übertragung der Pakete wird durch sukzessives Übertragen von Paketen ausgeführt, welche eine Datenmenge entsprechend der Fenstergröße aufweisen, welche zuvor von dem Client gemeldet wurde, wie beispielsweise die Übertragung einer Vielzahl von Teilen von Daten in der Periode A, welche in 4 gezeigt ist.
  • In Schritt S104 überprüft der Server, ob eine Empfangsbestätigung (TCP ACK) von dem Client empfangen worden ist. Wenn eine Empfangsbetätigung (TCP ACK) nicht empfangen worden ist, überprüft in Schritt S105 der Server, ob das TCP Übertragungsfenster einen maximalen Wert (MAX) aufweist, d. h. ob Pakete, welche eine Datenmenge entsprechend der Fenstergröße aufweisen, übertragen worden sind. Wenn Pakete, welche einer Datenmenge entsprechend der Fenstergröße aufweisen, nicht übertragen worden sind, fährt der Server in Schritt S106 mit der Übertragung von TCP Paketen (Segmenten) fort.
  • Wenn das TCP Übertragungsfenster einen maximalen Wert (MAX) aufweist, d. h. wenn Pakete, welche eine Datenmenge entsprechend der Fenstergröße aufweisen, übertragen worden sind, wartet der Server auf eine Empfangsbestätigung. Wenn in Schritt S104 bestimmt wird, dass eine Empfangsbestätigung empfangen worden ist, überprüft in Schritt S107 der Server, ob eine Empfangsbestätigung (TCP ACK), welche mit dem letzten Segment der übertragenen TCP Segmente assoziiert ist, empfangen worden ist, und wenn nicht, wartet er bis die Empfangsbestätigung empfangen wird. Die Empfangsbestätigung (TCP ACK), welche mit dem letzten Segment assoziiert ist, ist z. B. ack2 in der Periode A, welche in 4 gezeigt ist.
  • Wenn Schritt S107 bestimmt wird, dass die Empfangsbestätigung (TCP ACK), welche mit dem letzten Segment assoziiert ist, empfangen worden ist, speichert in Schritt S108 der Server eine Empfangszeit Te der Empfangsbestätigung (TCP ACK), welche mit dem letzten Segment assoziiert ist.
  • Dann berechnet in Schritt S109 der Server eine Abtastdauerperiode für eine Durchsatzberechnung Tn = Te – Ts. Diese Berechnung wird durch den Durchsatzberechner 211 des dynamischen Ratencontrollers 210 des Servers 200, welcher in 2 gezeigt ist, durchgeführt. Tn = Te – Ts repräsentiert einen gemessenen Wert einer effektiven Datenübertragungs- und Empfangsperiode, d. h. die Periode der Übertragung von sukzessiven Daten und des Empfangs von einer Empfangsbestätigung (ack), wie beispielsweise die Periode A oder C, welche in 4 gezeigt ist.
  • Dann überprüft in Schritt S110 der Server, ob die Anzahl von Abtastungen n, die gemessen worden sind, größer oder gleich einem vorbestimmten Schwellenwert Thn sind. Wenn die Anzahl n von Abtastungen, die gemessen worden sind, nicht größer oder gleich dem vorbestimmten Schwellenwert Tim sind, überprüft in Schritt S111 der Server, ob eine Kommunikation nicht fortgesetzt wird. Wenn eine Kommunikation fortgesetzt wird, kehrt der Prozess zu Schritt S102 zurück, und anschließende Schritte werden wiederholt, bis die Zahl n der gemessenen Abtastungen größer oder gleich dem vorbestimmten Schwellenwert Thn wird, wodurch Abtastungen gesammelt werden, welche mit den Abtastungsdauerperioden Th = Te – Ts zur Durchsatzberechnung assoziiert sind. Das heißt, eine vorbestimmte Anzahl von gemessenen Werten, welche mit den effektiven Datenübertragungs- und Empfangsperioden assoziiert ist, wie beispielsweise die Perioden A und C der Übertragung von sukzessiven Daten und des Empfangs der Empfangsbestätigungen (ack), welche in 4 gezeigt sind, wird gesammelt, bis die Zahl n der gemessenen Abtastungen größer oder gleich dem vorbestimmten Schwellenwert Thn wird.
  • Wenn in Schritt S110 bestimmt wird, dass die Anzahl der gemessenen Abtastungen n größer oder gleich dem vorbestimmten Schwellenwert Tim geworden ist, werden in Schritt S112 unter den gemessenen Abtastungen, welche mit den Abtastungsdauerperioden T1 bis Tn zur Durchsatzberechnung assoziiert sind, Abtastungen, welche extreme Werte aufweisen, als außergewöhnliche Werte ausgeschlossen. Dann wird in Schritt S113 ein maximaler Durchsatz unter Verwendung nur der Daten berechnet, welche mit den Abtastungsdauerperioden T1 bis Tn zur Durchsatzberechnung assoziiert sind berechnet, wobei außergewöhnliche Werte ausgeschlossen werden.
  • In Schritt S113 wird ein maximaler Durchsatz berechnet gemäß: Maximaler Durchsatz = (Σ(Mengen der Daten, welche in individuellen effektiven Datenübertragungs- und Empfangsperioden übertragen werden))/(Σ(individuelle effektive Datenübertragungs- und Empfangsperioden))
  • In der obigen Gleichung enthalten Σ(Mengen von Daten, welche in individuellen effektiven Datenübertragungs- und Empfangsperioden übertragen werden) und Σ(individuelle Datenübertragungs- und Empfangsperioden) nicht Perioden und Mengen von übertragenen Daten, welche mit außergewöhnlichen Werten assoziiert sind.
  • Auf diese Weise berechnet der Durchsatzberechner 211 des dynamischen Ratencontrollers 210 des Servers 200, welcher in 2 gezeigt ist, einen maximalen Durchsatz auf der Basis der gemessenen Längen und Übertragungsdatenmengen von einer Vielzahl von effektiven Datenübertragungs- und Empfangsperioden. Der Durchsatz, welcher in diesem Prozess berechnet wird, bezieht nicht die ineffektive Datenübertragungs- und Empfangsperiode B ein, welche in 4 gezeigt ist. Der Durchsatzberechner 211 gibt den berechneten Durchsatz als einen maximalen Durchsatz an den Bitrateneinsteller 212 des dynamischen Ratencontrollers 210 des Servers 200 ein, welcher in 2 gezeigt ist.
  • Nun wird ein Prozess, welcher durch den Bitrateneinsteller 212 ausgeführt wird, mit Bezug auf 6 und 7 beschrieben werden. Bezugnehmend auf 6 empfangt der Bitrateneinsteller 212 eine Eingabe des maximalen Durchsatzes, welcher durch den Durchsatzberechner 211, wie oben beschrieben berechnet wird, schätzt die Puffermenge eines Clients ab, um eine Bitrate zu bestimmen, und gibt eine Übertragungs-Daten-Bitrateneinstellungsinformation an den Datenprozessor 202 aus, welcher ein Codieren oder einer Auswahl der codierten Daten ausführt.
  • Der Bitrateneinsteller 212 schätzt die Puffermenge eines Clients unter Verwendung der folgenden Information ab:
    Puffermenge B_cli (Bytes), welche von dem Client beim Start der Kommunikation gemeldet wird
    Zeit T (Sekunden), welche seit dem Start der Wiedergabe durch den Client abgelaufen ist
    Menge D_serv (Bytes) von Daten, welche von dem Server während der vorübergegangenen Zeit T seit dem Start der Wiedergabe durch den Client übertragen werden
    Wiedergaberate R (Bytes/Sekunden) des Inhalts, der von dem übertragenen Inhalt erhalten werden kann
  • Der Server kann den Start der Wiedergabe des übertragenen Inhalts an dem Client erkennen, wenn die Menge der Daten, welche tatsächlich durch den Server übertragen werden, die Puffermenge B_cli überschreitet, welche von dem Client gemeldet wird. Das heißt, der Client akkumuliert Daten in dem Puffer entsprechend der Puffermenge B_cli des Clients vor dem Start der Inhaltswiedergabe, und wenn der Server Daten entsprechend der Menge übertragen hat, berücksichtigt der Server, dass der Clientpuffer voll geworden ist und eine Wiedergabe gestartet hat.
  • Zu der Zeit des Starts der Inhaltswiedergabe an dem Client ist die Puffermenge des Clients B_cli. Wenn eine Zeit T nach dem Start der Wiedergabe vorübergeht, überträgt der Server Daten, welche eine Menge D_serv (Bytes) aufweisen, zu dem Client und die Daten, welche übertragen werden, werden in dem Clientpuffer akkumuliert. Der Client spielt die Daten ab, welche eine Menge R·T (Bytes) aufweisen, und dann werden die Daten, welche diese Datenmenge aufweisen, aus dem Clientpuffer gelöst.
  • Auf der Basis eines solchen Übergangs von Daten schätzt der Server die derzeitige Puffermenge des Clients als B + D – R·T ab. Die Puffermenge, welche wie oben beschrieben, abgeschätzt wird, wird in einem Bereich von 0 bis MAX repräsentiert, wie durch die Puffermengeninformation 250 angezeigt wird, welche in 6 gezeigt ist. MAX entspricht der Clientpuffermenge B_cli. Der Bitrateneinsteller 212 bestimmt eine Bitrate auf der Basis eines solchen Übergangs von der abgeschätzten Puffermenge des Clientpuffers. Wenn die abgeschätzte Puffermenge größer oder gleich einem vorbestimmten Schwellenwert ist, wird die Bitrate innerhalb eines Bereichs von bis zu einer oberen Grenze einer maximal erlaubten Bitrate entsprechend dem maximalen Durchsatz erhöht, welcher durch den Durchsatzberechner 211 berechnet wird.
  • Nun wird die Sequenz eines Prozesses, welcher durch den Bitrateneinsteller 212 ausgeführt wird, mit Bezug auf ein Flussdiagramm beschrieben werden, welches in 7 gezeigt ist. In Schritt S201 überprüft der Bitrateneinsteller 212, ob die Puffermenge weniger als ein vorbestimmter Schwellenwert Th1 ist. Die Puffermenge bezieht sich hier auf eine Puffermenge, welche in der oben beschriebenen Weise abgeschätzt wird. Wenn bestimmt wird, dass die Puffermenge weniger als der vorbestimmte Schwellenwert Th1 ist, verringert in Schritt S202 der Bitrateneinsteller 212 die Übertragungsbitrate. Dies tritt auf, wenn die Puffermenge in einem Bereich Ba der Puffermengeninformation 250 ist, welche in 6 gezeigt ist.
  • Wenn in Schritt S201 bestimmt wird, dass die Puffermenge nicht weniger als der vorbestimmte Schwellenwert Th1 ist, überprüft in Schritt S23 der Bitrateneinsteller 212, ob die Puffermenge größer als ein vorbestimmter Schwellenwert Th2 ist. Wenn die Puffermenge nicht größer als der vorbestimmte Schwellenwert Th2 ist, kehrt der Prozess zu Schritt S201 zurück. Dies tritt auf, wenn die Puffermenge in einem Bereich Bb der Puffermengeninformation 250 ist, welche in 6 gezeigt ist.
  • Wenn die Puffermenge größer als der vorbestimmte Schwellenwert Th2 ist, vergleicht im Schritt S204 der Bitrateneinsteller 212 die derzeitige Übertragungsdatenbitrate mit dem maximalen Durchsatz, welcher durch den Durchsatzberechner 211 in dem oben beschriebenen Prozess berechnet wird. Wenn die derzeitige Übertragungsdatenbitrate weniger als die Bitrate entsprechend dem maximalen Durchsatz ist, welcher durch den Durchsatzberechner 211 berechnet worden ist, erhöht im Schritt S205 der Bitrateneinsteller 212 die Übertragungsbitrate. Jedoch dient die Bitrate entsprechend dem maximalen Durchsatz, welcher durch den Durchsatzberechner 211 berechnet wird, d. h. eine maximal erlaubte Bitrate, als eine obere Grenze. Wenn die derzeitige Übertragungsdatenbitrate gleich der maximal erlaubten Bitrate entsprechend dem maximalen Durchsatz ist, welcher durch den Durchsatzberechner 211 berechnet wird, kehrt der Prozess zu Schritt 201 ohne Verändern der Bitrate zurück. Dies tritt auf, wenn die Puffermenge in einem Bereich Bc der Puffenmengeninformation 250 ist, welche in 6 gezeigt ist.
  • Der Durchsatzberechnungsprozess, welcher zuvor mit Bezug auf das Flussdiagramm beschrieben wurde, welches in 5 gezeigt ist, wird um eine vorbestimmte Periode wiederholt, während Datenkommunikationen fortgesetzt werden, und der Durchsatzberechner 211 aktualisiert den Durchsatz und die Eingaben des aktualisierten Durchsatzes an den Bitrateneinsteller 212 fortlaufend. Der Bitrateneinsteller 212 wiederholt den Prozess in dem Flussdiagramm, welches in 7 gezeigt ist, um fortlaufend eine Bitrate auf der Basis der maximal erlaubten Bitrate entsprechend dem letzten maximalen Durchsatz zu bestimmen, welcher durch den Durchsatzberechner 211 berechnet wird. Somit wird die Bitrate auf der Basis eines maximalen Durchsatzes in Übereinstimmung mit einem Netzwerkstatus gesteuert.
  • In dieser Ausführungsform, wie mit Bezug auf 4 beschrieben wurde, wird ein maximaler Durchsatz unter Verwendung von gemessenen Werten berechnet, welche mit "effektiven Datenübertragungs- und Empfangsperioden" assoziiert sind, d. h. die Perioden der Übertragung von sukzessiven Daten und des Empfangs der Empfangsbestätigungen, wie beispielsweise die Perioden A und C, welche in 4 gezeigt sind, und die Übertragungsbitrate wird innerhalb eines Bereichs von bis zu einer oberen Grenze einer maximal erlaubten Bitrate entsprechend dem maximalen Durchsatz gesteuert. Das heißt, ein maximaler Durchsatz wird auf der Basis einer effektiven Datenübertragungs- und Empfangsperiode berechnet, welche nicht eine ineffektive Datenübertragungs- und Empfangsperiode enthält, die nicht zu einer Datenübertragung und einem Empfang beiträgt, wie beispielsweise die Periode B, welche in 4 gezeigt ist, und die Bitrate wird innerhalb eines Bereichs von bis zu einer oberen Grenze einer maximal erlaubten Bitrate entsprechend dem maximal berechneten Durchsatz gesteuert. Gemäß dieser Ausführungsform ist es möglich, die Bitrate in Anbetracht der tatsächlichen Übertragungsrate zu steuern. Somit können Daten innerhalb eines Bereichs von bis zu einer oberen Grenze entsprechend einer maximalen Bitrate übertragen werden, bei welcher Daten zuverlässig übertragen werden können, ohne die Bitrate übermäßig zu erhöhen oder zu verringern.
  • Zweites Beispiel, welches keinen Teil der vorliegenden Erfindung bildet
  • Als nächstes wird ein zweites Beispiel beschrieben werden. In der zweiten Ausführungsform wird ein Durchsatz oder ein Wert, welcher verwendet wird, um einen Durchsatz zu berechnen, durch einen Client auf der Basis von empfangenen Daten berechnet, und ein Server steuert die Bitrate auf der Basis des berechneten Wertes.
  • 8 ist ein Blockdiagramm, welches Funktionen eines Servers 200 zeigt, der Streamingdaten verteilt, und eines Clients 300, der die Streamingdaten in der zweiten Ausführungsform empfängt und abspielt. Kommunikationen zwischen dem Server 200 und dem Client 300 werden durch Aufbauen einer TCP Verbindung ausgeführt.
  • Im Gegensatz zu der Konfiguration der ersten Ausführungsform, welche zuvor mit Bezug auf 2 beschrieben wurde, enthält der Client 300 einen Paketintervallmesser 305. Die anderen Komponenten sind im Wesentlichen die gleichen, wie die entsprechenden Komponenten, welche in 2 gezeigt sind, führen jedoch unterschiedliche Prozesse aus. Die folgende Beschreibung wird hauptsächlich auf Punkte gerichtet sein, die sich von der ersten Ausführungsform unterscheiden.
  • In dem zweiten Beispiel überträgt der Datentransceiver 204 des Servers 200 sukzessive Datenübertragungspakete mit der Dringendflagge (URG Flagge), welche auf EIN gesetzt ist (d. h. 1), in einem vorbestimmten Intervall. Die Dringendflagge wird gewöhnlich auf EIN gesetzt (d. h. 1), wenn dringende Daten in einem TCP Paket enthalten sind. In dieser Ausführungsform, ungeachtet des Vorhandenseins oder der Abwesenheit von dringenden Daten, werden Pakete mit der dringenden Flagge (URG Flagge) auf EIN gesetzt (d. h. 1) sukzessive übertragen, um zu kennzeichnen, dass die Pakete verwendet werden, um ein Empfangsintervall von TCP Paketen an dem Client zu messen.
  • Nun wird eine Datenkommunikationssequenz, welche zwischen einem Server und einem Client ausgeführt wird, mit Bezug auf 9 beschrieben werden. Ähnlich der ersten Ausführungsform werden auch in dem zweiten Beispiels Streamingdaten von dem Server zu dem Client nach einem Aufbauen einer Verbindung verteilt. Die Datenkommunikationssequenz, welche in 9 gezeigt ist, zeigt die Details des Datenübertragungsprozesses in Schritt S13, welcher in 3 gezeigt ist, welcher in Zusammenhang mit der ersten Ausführungsform beschrieben wurde.
  • In dem zweiten Beispiel, wie in 9 gezeigt ist, überträgt der Server TCP Pakete an den Client, um von Daten 1 zu starten. Der Server überträgt sukzessive Pakete, mit welchen ein Paketempfangsintervall an dem Client mit der Dringendflagge zu messen ist, welche auf EIN (d. h. auf 1) gesetzt ist. In 9 ist die Dringendflagge auf EIN (d. h. 1) in den Headern eines TCP Pakets n und eines TCP Pakets n + 1 gesetzt. Die sukzessiven zwei Pakete mit der Dringendflagge, welche auf EIN (d. h. 1) gesetzt ist, werden als Paare von Paketen zur Durchsatzmessung verwendet.
  • Wenn zwei Pakete mit der Dringendflagge, welche auf EIN (d. h. 1) gesetzt ist, sukzessive erhalten werden, misst der Client ein Empfangsintervall t der zwei Pakete. Der Client berechnet einen Durchsatz auf der Basis des gemessenen Wertes und meldet den Durchsatz dem Server. Alternativ kann der Client die Empfangsintervalldaten t dem Server melden, so dass ein Durchsatz an dem Server auf der Basis der Empfangsintervalldaten t berechnet werden kann.
  • Der Server definiert einen maximalen Durchsatz entsprechend dem Durchsatz, welcher auf der Basis der Empfangsintervalldaten t der sukzessiven Pakete berechnet wird, und steuert die Bitrate innerhalb eines Bereichs von bis zu einem maximal erlaubten entsprechend dem maximalen Durchsatz. Nun werden die Sequenz eines Prozesses, welcher durch den Server ausgeführt wird, und die Sequenz eines Prozesses, welcher durch den Client ausgeführt wird, in der zweiten Ausführungsform mit Bezug auf 10 und 11 beschrieben werden.
  • Als erstes wird ein Prozess, welcher durch den Server ausgeführt wird, mit Bezug auf 10 beschrieben werden. 10 ist ein Flussdiagramm, welches den Schluss der Verarbeitung zeigt, in welcher der Server 200 eine TCP Verbindung mit dem Client aufbaut, Kommunikationen ausführt und die TCP Verbindung schließt.
  • Als erstes baut in Schritt S301 der Server eine TCP Verbindung mit einem Client auf, an welchem Streamingdaten zu verteilen sind. Wenn in Schritt S302 bestimmt wird, dass eine Datenübertragungsanfrage von einer Clientanwendung empfangen worden ist, startet in Schritt S303 der Server eine Übertragung von TCP Segmenten (Paketen).
  • In Schritt S304 überprüft der Server, ob ein Paar von Paketen zur Durchsatzmessung zu dem Client zu übertragen sind. Wenn ein Paar von Durchsatzpaketen zu übertragen ist, erzeugt im Schritt S305 der Server Pakete mit der Dringendflagge, welche auf EIN (d. h. 1) gesetzt ist, und überträgt sukzessive das Paket. Wenn Pakete, die zu übertragen sind, nicht ein Paar von Paketen zur Durchsatzberechnung sind, erzeugt der Server in Schritt S306 Pakete mit der Dringendflagge, welche auf AUS (d. h. 0) gesetzt ist.
  • Wenn in Schritt S307 bestimmt wird, dass eine Kommunikation fortgesetzt wird, werden Schritt S302 und nachfolgende Schritte wiederholt. Wenn eine Kommunikation beendet ist, fährt der Prozess mit Schritt S308 fort, um die TCP Verbindung zu schließen, und der Prozess wird dann verlassen.
  • Als nächstes wird ein Prozess, welcher durch den Client ausgeführt wird, mit Bezug auf ein Flussdiagramm beschrieben werden, welches in 11 gezeigt ist. 11 ist ein Flussdiagramm, welches den Prozess eines Flusses zeigt, in welchem der Client 300 eine TCP Verbindung mit dem Server aufbaut, Kommunikationen ausführt und die TCP Verbindung schließt.
  • Als erstes baut im Schritt S351 der Client eine TCP Verbindung mit dem Server auf, von welchem Streamingdaten verteilt werden. Im Schritt S352 empfangt der Client TCP Pakete, welche von dem Server übertragen werden. Im Schritt S353 speichert der Client eine Empfangszeit der TCP Pakete in einem Speicher.
  • Im Schritt S354 überprüft der Client, ob die Dringendflagge von einem empfangenen Paket auf EIN (d. h. 1) gesetzt ist. Wenn Schritt S354 in NEIN resultiert, kehrt der Prozess zu Schritt S352 zurück. Wenn Schritt S354 in JA resultiert, überprüft in Schritt S355 der Client, ob die Dringendflagge eines direkt zuvor empfangenen Pakets auch auf EIN (d. h. 1) gesetzt ist. Wenn Schritt S355 in NEIN resultiert, kehrt der Prozess zum Schritt S352 zurück. Wenn Schritt S355 in JA resultiert, berechnet in Schritt S356 der Client ein Empfangsintervall t von diesen zwei Paketen, wobei die Dringendflagge auf EIN (d. h. 1) gesetzt ist. Dieser Schritt wird durch den Paketintervallmesser 305 des Clients 300, welcher in 8 gezeigt ist, ausgeführt.
  • In Schritt S357 berechnet der Client einen maximalen Durchsatz auf der Basis des Empfangsintervalls t von zwei sukzessiven Paketen gemäß: Maximaler Durchsatz = (Menge von Daten, welche dem Paar von Paketen folgen)/t
  • Dieser Schritt wird durch den Paketintervallmesser 305 ausgeführt.
  • In Schritt S358 bestimmt der Client, ob oder ob nicht berechnete Information zu dem Server zurückgeführt wird. Wenn bestimmt wird, dass die berechnete Information nicht zurückgeführt wird, überprüft der Client in Schritt S360, ob eine Kommunikation fortgesetzt wird. Wenn eine Kommunikation fortgesetzt wird, kehrt der Prozess zu Schritt 352 zurück und folgende Schritte werden wiederholt. Wenn in Schritt S358 bestimmt wird, die berechnete Information zurückzuführen, wird in Schritt S259 die berechnete Durchsatzinformation oder Empfangsintervallinformation zu dem Server übertragen.
  • Nach Schritt S359 wird im Schritt S360 überprüft, ob eine Kommunikation fortgesetzt wird. Wenn eine Kommunikation fortgesetzt wird, kehrt der Prozess zu Schritt S352 zurück und nachfolgende Schritte werden wiederholt. Wenn in Schritt S360 bestimmt wird, dass eine Kommunikation beendet worden ist, wird in Schritt S361 die TCP Verbindung geschlossen.
  • In dem oben beschriebenen Fall, wenn zwei sukzessive Pakete mit der Dringendflagge auf EIN (d. h. 1) gesetzt empfangen werden, misst der Client ein Empfangsintervall t von zwei Paketen, berechnet einen Durchsatz auf der Basis des gemessenen Wertes und meldet den Durchsatz dem Server. Alternativ kann der Client Empfangsintervalldaten t dem Server melden, so dass ein Durchsatz an dem Server auf der Basis der Empfangsintervalldaten t berechnet werden kann. In diesem Fall muss der Client nicht den Schritt S357 ausführen.
  • An dem Server, wenn Information, welche von dem Client empfangen wird, Rezeptionsintervalldaten t sind, berechnet der Durchsatzberechner 211 des Servers einen maximalen Durchsatz auf der Basis der Empfangsintervalldaten t gemäß der gleichen Durchsatzberechnungsgleichung wie in dem oben beschriebenen Fall, d. h.: Durchsatz = (gesamte Datenmenge des Paares von Paketen/2)/t
  • Der Bitrateneinsteller 212 an dem Server gibt dem Bitrateneinsteller 212 als einen maximalen Durchsatz einen Durchsatz an, welcher von dem Client empfangen wird, oder einen Durchsatz, welcher durch den Durchsatzberechner 211 von dem Server auf der Basis der Empfangsintervalldaten t berechnet werden, welche von dem Client empfangen werden.
  • Der Prozess, welcher durch den Bitrateneinsteller 212 ausgeführt wird, ist der gleiche, wie der Bitratensteuerungsprozess, welcher zuvor mit Bezug auf 7 in dem Zusammenhang der ersten Ausführungsform beschrieben wurde. Auch wird in diesem Verfahren ein maximaler Durchsatz auf der Basis eines Empfangsintervalls von tatsächlich übertragenen sukzessiven Paketen berechnet. Das hießt, ein maximaler Durchsatz wird durch Ausschließen von "ineffektiven Datenübertragungs- und Empfangsperioden" berechnet, die nicht der zur Datenübertragung und Empfang beitragen, wie beispielsweise die Periode B, welche zu vor mit Bezug auf 4 beschrieben wurde, und die Bitrate kann innerhalb eines Bereichs von bis zu einer oberen Grenze einer maximal erlaubten Bitrate entsprechend dem maximalen Durchsatz, welcher berechnet wird, gesteuert werden. Somit wird auch in der zweiten Ausführungsform die Bitrate gemäß einer maximal erlaubten Bitrate entsprechend einem maximalen Durchsatz gesteuert, der auf der Basis einer Messung von Paketen bestimmt wird, die tatsächlich sukzessive übertragen werden. Dementsprechend kann die Bitrate in Anbetracht einer tatsächlichen Übertragungsrate gesteuert werden, so dass Daten innerhalb eines Bereichs von bis zu einer oberen Grenze einer maximalen Bitrate übertragen werden, bei welcher Daten zuverlässig übertragen werden können, ohne die Bitrate übermäßig zu erhöhen oder zu verringern.
  • Dritte Ausführungsform
  • Als nächstes wird eine dritte Ausführungsform beschrieben werden, in welcher eine Bitrate auf der Basis von Information gesteuert wird, die durch ein Zugriffspunkt (AP) erhalten wird.
  • In der Netzwerkkonfiguration, welche in 1 gezeigt ist, führen der Client (tragbares Endgerät) 123 und der Client (Wiedergabevorrichtung) 124 Kommunikationen mit dem Server 101 über den Zugriffspunkt (AP) 131 aus.
  • Wenn ein Server Streamingdaten an einen Client über einen Zugriffspunkt (AP) verteilt, muss der Server zuerst einen Prozess zum Entdecken eines optimalen Zugriffspunktes (AP) zwischen dem Server und dem Client ausführen. Der AP Ermittlungsprozess wird mit Bezug auf 12 beschrieben werden.
  • Als erstes, vor dem Starten des Streamens, sendet in Schritt S401 der Server 200, der eine Streamingverteilung durchführt, eine "AP Ermittelungsmeldung", welche eine MAC Adresse des Servers 200 selbst und eine MAC Adresse des Clients 123 an einer Bestimmung der Streamingdaten innerhalb eines Unternetzes enthält.
  • Die "AP Ermittelungsmeldung", die gesendet worden ist, wird durch alle der Zugriffspunkte (AP), welche mit einem LAN verbunden sind, empfangen. In 12 sind zwei Zugriffspunkte 400a und 400b, nämlich ein Zugriffspunkt a (APa) und ein Zugriffspunkt b (APb) gezeigt. Auf ein Empfangen der "AP Ermittelungsmeldung" von dem Server 200 in Schritt 402 hin, nimmt jede der Zugriffspunkte (APs) 400a und 400b auf seine eigene drahtlose Assoziierungsliste Bezug, um zu überprüfen, ob ein Knoten, welcher die Client MAC Adresse aufweist, welche in der "AP Ermittlungsmeldung" enthalten ist, innerhalb eines drahtlosen Netzwerks existiert.
  • Wenn ein Knoten, welcher die MAC Adresse aufweist, in der Assoziierungsliste existiert, erkennt der AP, dass der AP selbst auf einem Kommunikationspfad des Streamens ist, welches stattfindet. Ungeachtet, ob ein Knoten, welcher die MAC Adresse aufweist, in der Assoziierungsliste existiert, entsorgt der AP die "AP Ermittelungsmeldung" ohne sie zu der drahtlosen Verbindung weiterzuleiten.
  • Wenn erkannt wird, dass der AP auf einem Kommunikationspfad des Streamens ist, sendet in S403 in dem Beispiel, welches in 12 gezeigt ist, der Zugriffspunkt 400a (APa) dem Server 200 eine "AP Ermittlungsantwortnachricht", welche eine MAC Adresse des Zugriffspunkts 400a (APa) selbst aufweist sowie die MAC Adressen des Servers 200 des Clients 123. Dies erlaubt es dem Streamingverteilungsserver 200, zu erkennen, dass eine drahtlose Verbindung (Flaschenhals) auf dem Pfad des Streamens, der auszuführen ist, existiert. Wenn erkannt wird, dass der AP nicht auf dem Pfad des Streamens, welches stattfindet, ist, überträgt der AP nicht die "AP Ermittelungsantwortnachricht".
  • Auf diese Weise werden dem Server, der Streamingdaten verteilt, und einem Zugriffspunkt (AP, welcher auf einem Kommunikationspfad angeordnet ist, erlaubt, MAC Adressen voneinander zu finden. Dies erlaubt Kommunikationen (z. B. einem Report der drahtlosen Verbindungsinformation von dem AP zu dem Server) zwischen dem Server und dem Zugriffspunkt (AP). Wenn die relevante MAC Adresse von der Assoziationsliste des Zugriffspunkts (AP) selbst z. B. aufgrund einer Bewegung oder eines Ausscheidens des Clients gelöscht wird, der die Streamingdaten empfangt, beendet der Zugriffspunkt (AP) ein Berichten einer drahtlosen Information zu dem Server.
  • Weiterhin überträgt der Server regelmäßig die "AP Ermittlungsnachricht" während des Streamens sowie an dem Start des Streamens, so dass das Streamen aufrechterhalten wird, sogar wenn der Streamingclient zwischen den APs übergeben wird. Noch genauer, wenn ein Wechsel eines Streamingclients auftritt, sendet auf einen Empfang einer "AP Ermittelungsnachricht" durch einen neuen AP, auf welchen durch den Streamingclient zugriffen wird, der AP eine "AP Ermittlungsantwortnachricht" zu dem Server zurück und startet ein Melden des Status einer drahtlosen Verbindung. Die MAC Adresse des Streamingclients wird aus der Assoziationsliste eines AP gelöscht, auf welchen zugegriffen worden ist, wovor der Wechsel stattfindet, und dieser AP beendet ein Berichten von drahtloser Verbindungsinformation zu dem Server.
  • Wenn der Bericht von dem Zugriffspunkt (AP) zu dem Server auf Nachrichten einer oberen Schicht (der IP Schicht) anstelle von Nachrichten der Schicht 2 (der Datenverbindungsschicht) basiert, werden IP Adressen sowie MAC Adressen in der "AP Ermittelungsnachricht" und der "AP Ermittelungsantwortnachricht" eingeschlossen. Statt der "AP Ermittelungsantwortnachricht" kann der Zugriffspunkt (AP) drahtlose Verbindungsinformation sofort melden.
  • Durch den AP Ermittelungsprozess, welcher oben beschrieben ist, wird eine Beziehung zwischen dem Server, dem Zugriffspunkt (AP) und dem Client, welche in einer Streamingverteilung involviert sind, konfiguriert. In der dritten Ausführungsform steuert der Server, der eine Streamingverteilung ausführt, eine Bitrate auf der Basis von Information, welche durch den Zugriffspunkt (AP) auf einem Pfad der Streamingverteilung erhalten wird.
  • Nun werden die Funktionen des Servers 200, der die Streamingdaten verteilt, des Clients 300, der die Streamingdaten empfängt und abspielt, und des Zugriffspunkts (AP) 400, welcher auf dem Pfad des Streamens in der dritten Ausführungsform existiert mit Bezug auf 13 beschrieben werden. Der Server 200 und der Client 300 führen Kommunikationen durch Aufbauen einer TCP Verbindung über den Zugriffspunkt (AP) 400 aus.
  • Die Konfigurationen des Servers 200 und des Clients 300 sind die gleichen, wie diejenigen in der ersten Ausführungsform, welche mit Bezug auf 2 beschrieben wurde. Jedoch unterscheidet sich der Prozess, welcher durch den Server 200 ausgeführt wird. Wie in 13 gezeigt ist, enthält der Zugriffspunkt (AP) 400 einen Datentransceiver 401, einen Kommunikationsbandbreitenmonitor 402 und einen Kommunikationsbandbreiteninformationsgenerator 403.
  • In dem Zugriffspunkt (AP) 400, überwacht der Kommunikationsbandbreitenmonitor 402 Werte, wie beispielsweise eine Hin- und Rücklaufzeit (RTT), einen Stärkeindikator eines empfangenen Signals (RSSI), und eine Übertragungsrate in der Schicht 2 (Datenverbindungsschicht) der drahtlosen Kommunikationsverbindung. Die RTT bezieht sich auf eine Zeit, die von der Übertragung eines Pakets von dem Zugriffspunkt (AP) 400 zu dem Empfang einer Antwort von dem Client genommen wird. Die Überwachungsoperation durch den Kommunikationsbandbreitenmonitor 402 des Zugriffspunkts (AP) 400 wird regelmäßig ausgeführt.
  • Die Kommunikationsverbindungsinformation, welche durch den Kommunikationsbandbreitenmonitor 402 erhalten wird, wird durch den Kommunikationsbandbreiteninformationsgenerator 403, wie zum Berichten an den Server erforderlich, verarbeitet. Zum Beispiel bezieht die Datenverarbeitung eine Berechnung der gewichteten Durchschnitte oder Standardabweichungen ein. Ein gewichteter Durchschnitt oder eine Standardabweichung wird für jeden Wert wie beispielsweise RTT, RSSI und eine Übertragungsrate berechnet, um Werte zu erzeugen, die an den Server zu berichten sind. Die Daten, welche durch den Kommunikationsbandbreiteninformationsgenerator 403 erzeugt werden, werden dem Server 200 über den Datentransceiver 401 und ein Kommunikationsnetzwerk gemeldet.
  • Die Kommunikationsbandbreiteninformation, welche von dem Zugriffspunkt (AP) 400 zu dem Server 200 übertragen wird, wird durch den Datentransceiver 204 des Servers 200 empfangen und wird dem Bitrateneinsteller 212 des dynamischen Ratencontrollers 210 eingegeben. Der Bitrateneinsteller 212 analysiert die Kommunikationsbandbreiteninformation, welche von dem Zugriffspunkt (AP) 400 erhalten wird, gemäß einem Überprüfungsalgorithmus. Der Bitrateneinsteller 212 verringert die Bitrate direkt, wenn bestimmt wird, dass die Bitrate der Streamingdaten zu verringern ist.
  • Der Überprüfungsalgorithmus bezieht z. B. einen Vergleich der Kommunikationsbandbreiteninformation ein, welche von dem Zugriffspunkt (AP) 400 erhalten wird, mit Schwellenwerten, welche in dem Bitrateneinsteller 212 gehalten werden. Noch genauer wird z. B. die Bitrate verringert, wenn Parameter, welche in der Kommunikationsbandbreiteninformation enthalten sind, welche von dem Zugriffspunkt (AP) 400 erhalten werden, wie beispielsweise gewichtete Durchschnitte oder Standardabweichungen der RTT, RSSI und Übertragungsrate, die in dem Bitrateneinsteller 212 gehalten werden, N-Male in Folge überschreiten. Der Vergleich zwischen den Schwellenwerten wird einer Anzahl von Malen ausgeführt, um ein sinnloses Verringern der Bitrate z. B. zu verhindern, wenn die Parameter zufällig entsprechende Schwellenwerte nur einmal überschreiten.
  • Der Prozess, welcher durch den Bitrateneinsteller 212 in der dritten Ausführungsform ausgeführt wird, wird mit Bezug auf 14 und 15 beschrieben werden. In der dritten Ausführungsform wird die Bitrate durch eine Kombination eines Durchsatzberechnungsprozesses gemäß der ersten oder zweiten Ausführungsform gesteuert. Bezugnehmend auf 14 empfangt der Bitrateneinsteller 212 eine Eingabe eines maximalen Durchsatzes, welcher durch den Prozess gemäß der ersten oder zweiten Ausführungsform berechnet wird, und erhält auch eine Eingabe der Kommunikationsbandbreiteninformation, welche von dem Zugriffspunkt (AP) 400 erhalten wird, d. h. Parameter, wie beispielsweise gewichtete Durchschnitte oder Standardabweichungen von RTT, RSSI, und der Übertragungsrate von drahtlosen Kommunikationen zwischen dem Zugriffspunkt und dem Client. Weiterhin führt der Bitrateneinsteller 212 den Prozess des Abschätzens der Clientpuffermenge aus, welcher zuvor beschrieben wurde, um eine Bitrate zu bestimmen, und gibt eine Übertragungsbitrateneinstellinformation an den Datenprozessor 202 ein, der eine Codierung oder Auswahl von codierten Daten ausführt. Wie durch die Puffermengeninformation 250 in 4 gekennzeichnet ist, ist die geschätzte Clientpuffermenge, welche durch den Bitrateneinsteller 212 erhalten wird, in einem Bereich von 0 bis MAX.
  • Nun wird die Sequenz des Prozesses, welcher durch den Bitrateneinsteller 212 ausgeführt wird, mit Bezug auf ein Flussdiagramm beschrieben werden, welches in 15 gezeigt ist. In Schritt S501 überprüft der Bitrateneinsteller 212, ob eine Kommunikationsbandbreiteninformation von dem Zugriffspunkt (AP) 400 eingegeben worden ist. Die Kommunikationsbandbreiteninformation bezieht sich auf Parameter, wie beispielsweise gewichtete Durchschnitte oder Standardabweichungen der RTT, RSSI und Überragungsrate. Wenn in Schritt S501 bestimmt wird, dass die Kommunikationsbandbreiteninformation von dem Zugriffspunkt (AP) 400 eingegeben worden ist, analysiert in Schritt S502 der Bitrateneinsteller 212 die Kommunikationsbandbreiteninformation, welche von dem Zugriffspunkt 400 (AP) eingegeben wird.
  • Die Analyse in Schritt S502 bezieht z. B. ein Vergleich der Kommunikationsbandbreiteninformation ein, welche von dem Zugriffspunkt (AP) 400 erhalten wird, mit Schwellenwerten, welche durch den Bitrateneinteller 212, wie zuvor beschrieben gehalten werden. Zum Beispiel werden Parameter, welche von dem Zugriffspunkt (AP) 400, wie beispielsweise gewichtete Durchschnitte oder Standardabweichungen der RTT, RSSI und Übertragungsrate der drahtlosen Kommunikationen zwischen der Basisstation und dem Client mit den Schwellenwerten verglichen, welche durch den Bitrateneinsteller 212 erhalten werden.
  • In Schritt 503 wird auf der Basis des Ergebnisses der Analyse in Schritt S502 überprüft, ob die Übertragungsbitrate zu verringern ist. Wenn bestimmt wird, dass die Übertragungsbitrate zu verringern ist, verringert in Schritt S504 der Bitrateneinsteller 212 die Übertragungsbitrate. Weiterhin überprüft in Schritt S505 der Bitrateneinsteller 212 auf der Basis des Ergebnisses der Analyse in Schritt S502, ob es möglich ist, die Übertragungsbitrate zu erhöhen. Wenn bestimmt wird, dass es möglich ist, die Übertragungsbitrate zu erhöhen, erhöht in Schritt S502 der Bitrateneinsteller 212 die Übertragungsbitrate. Jedoch wird nicht erlaubt, die Bitrate über eine Grenze einer maximal erlaubten Bitrate entsprechend einem maximalen Durchsatz zu erhöhen, welcher durch den Durchsatzberechner 2111 berechnet wurde. Die obere Grenze ist eine maximal erlaubte Bitrate entsprechend einem maximalen Durchsatz, welcher durch den Durchsatzberechner 211 oder durch einen Client berechnet wird, wie im Zusammenhang mit den ersten und zweiten Ausführungsformen beschriebe wurde.
  • Beim Überprüfen, ob die Übertragungsbitrate auf der Basis der Analyse der Kommunikationsbandbreiteninformation zu verringern oder zu erhöhen ist, welche von dem Zugriffspunkt (AP) 400 in Schritten S503 und S504 erhalten wird, wie zuvor beschrieben, bestimmt der Bitrateneinsteller 212 die Bitrate, die zu ändern ist, wenn ähnliche Ergebnisse einer Anzahl von Malen in Folge durch Vergleich von Parametern beobachtet werden, welche von dem Zugriffspunkt (AP) 400 erhalten werden, wie beispielsweise gewichtete Durchschnitte oder Standardabweichungen einer RTT, RSSI und Übertragungsrate von drahtlosen Kommunikationen zwischen dem Zugriffspunkt und dem Client, mit den Schwellenwerten, welche durch den Bitrateneinsteller 212 gehalten werden.
  • Zum Beispiel, wenn die RTT der drahtlosen Kommunikationen zwischen dem Zugriffspunkt und dem Client aufrechterhalten wird, um länger als ein Schwellenwert für eine bestimmte Periode zu sein, wird die Übertragungsrate verringert. Wenn die RTT aufrechterhalten wird, um kürzer als ein Schwellenwert b für eine bestimmte Periode zu sein, wird die Übertragungsrate erhöht. Wenn der Stärkeindikator des empfangenen Signals (RSSI) der drahtlosen Kommunikationen zwischen dem Zugriffspunkt und dem Client aufrechterhalten wird, um höher als ein Schwellenwert c für eine bestimmte Periode zu sein, wird die Übertragungsrate erhöht. Wenn der RSSI aufrechterhalten wird, um niedriger als ein Schwellenwert d für eine bestimmte Periode zu sein, wird die Übertragungsbitrate verringert. Wenn die Bitrate der drahtlosen Kommunikationen zwischen dem Zugriffspunkt und dem Client aufrechterhalten wird, um niedriger als ein Schwellenwert e für eine bestimmte Periode zu sein, wird die Übertragungsbitrate verringert. Wenn die Bitrate aufrechterhalten wird, um höher als ein Schwellenwert s für eine bestimmte Periode zu sein, wird die Übertragungsrate erhöht.
  • In Schritten S507 bis S509 wird die Bitrate auf der Basis der geschätzten Puffermenge gesteuert, ähnlich der ersten Ausführungsform. Noch genauer überprüft in Schritt S507 der Bitrateneinsteller 212, ob die Puffermenge weniger als der vorbestimmte Schwellenwert Th1 ist. Wenn bestimmt wird, dass die Puffermenge weniger als der vorbestimmte Schwellenwert Th1 ist, verringert in Schritt S504 der Bitrateneinsteller 212 die Übertragungsbitrate. Dieser Schritt wird ausgeführt, wenn die Puffermenge in einem Bereich Ba der Puffermengeninformation 250 ist, welche in 14 gezeigt ist.
  • Wenn in Schritt S507 bestimmt wird, dass die Puffermenge nicht weniger als der vorbestimmte Schwellenwert Th1 ist, überprüft in Schritt S508 der Bitrateneinsteller 212, ob die Puffermenge größer als der vorbestimmte Schwellenwert Th2 ist. Wenn bestimmt wird, dass die Puffermenge größer als der vorbestimmte Schwellenwert Th2 ist, kehrt der Prozess zu Schritt S501 zurück. Dieser Schritt wird ausgeführt, wenn die Puffermenge in einem Bereich Bb der Puffermengeninformation 250 ist, welche in 6 gezeigt ist.
  • Wenn bestimmt wird, dass die Puffermenge größer als der vorbestimmte Schwellenwert Th2 ist, wird in Schritt S506 die derzeitige Bitrate der Übertragungsdaten mit einer maximal erlaubten Bitrate entsprechend einem maximalen Durchsatz verglichen, welcher durch den Durchsatzberechner 211 berechnet wird, durch den Prozess gemäß der ersten Ausführungsform oder ein maximaler Durchsatz, welcher durch den Client oder durch den Durchsatzberechner 211 durch den Prozess gemäß der zweiten Ausführungsform berechnet wird. Wenn die derzeitige Bitrate der Übertragungsdaten weniger als die maximal erlaubte Bitrate entsprechend dem maximalen Durchsatz ist, wird in Schritt S506 die Bitrate der Übertragungsdaten erhöht. Jedoch ist es nicht erlaubt, die Bitrate über die maximal erlaubte Bitrate zu erhöhen. Wenn die derzeitige Bitrate der Übertragungsdaten gleich der maximal erlaubten Bitrate entsprechend dem maximalen Durchsatz ist, kehrt der Prozess zu Schritt S501 ohne Verändern der Bitrate zurück. Dies tritt auf, wenn die Puffermenge in einem Bereich Bc der Puffermengeninformation 250 ist, welcher in 14 gezeigt ist.
  • In der dritten Ausführungsform, zusätzlich zu der Bitratensteuerung basierend auf dem maximalen Durchsatz, welcher durch den Durchsatzberechnungsprozess gemäß der ersten oder zweiten Ausführungsform berechnet wird, wird die Bitrate auch auf der Basis der Kommunikationsbandbreiteninformation gesteuert, welche Parameter repräsentiert, welche durch den Zugriffspunkt (AP) gemessen werden, wie beispielsweise die RTT, RSSI und Übertragungsrate der drahtlosen Kommunikation zwischen dem Zugriffspunkt und dem Client. Dies erlaubt ein Steuern der Bitrate in Übereinstimmung mit einer Änderung im Kommunikationsstatus der drahtlosen Kommunikationen. Weiterhin, ähnlich der ersten und zweiten Ausführungsformen, wird ein Durchsatz, welcher auf der Basis einer effektiven Datenübertragungs- und Empfangsperiode berechnet wird, als ein maximaler Durchsatz verwendet. Somit ist es möglich, die Bitrate in Anbetracht einer tatsächlichen Übertragungsrate zu steuern. Dementsprechend ist es möglich, Daten innerhalb eines Bereichs von bis zu einer oberen Grenze einer maximalen Bitrate zu übertragen, bei welcher Daten zuverlässig übertragen werden können, ohne die Bitrate übermäßig zu erhöhen oder zu verringern.
  • Wenn auf der Basis der Kommunikationsbandbreiteninformation der drahtlosen Kommunikationen zwischen dem Zugriffspunkt und dem Client bestimmt wird, gemessen durch den Zugriffspunkt (AP), dass es schwierig ist, eine Verteilung der Streamingdaten zwischen dem Server und dem Client aufrechtzuerhalten, kann der Server oder der Zugriffspunkt (AP) den Client benachrichtigen, dass es schwierig geworden ist, die Verteilung von Streamingdaten aufrechtzuerhalten. In diesem Fall zeigt der Client die Meldung auf einer Anzeige an, um den Benutzer in Kenntnis zu setzen, dass es schwierig geworden ist, eine Datenverteilung aufrechtzuerhalten. Somit kann der Nutzer geeignete Maßnahmen ergreifen, z. B. ein Anordnen des Clientendgeräts näher zu dem Zugriffspunkt (AP) oder ein Stoppen einer Vorrichtung, welche das Problem verursacht, wie beispielsweise ein Mikrowellenofen.
  • Beispielhafte Hardwarekonfiguration des Servers, Zugriffspunkts (AP) und Clients Als nächstes wird ein Beispiel einer Hardwarekonfiguration des Servers, Zugriffspunkts (AP) und Clients mit Bezug auf 16 beschrieben werden. Wie mit Bezug auf 1 beschrieben wurde, können der Server und der Client durch verschiedene Vorrichtungen implementiert werden. 16 zeigt eine beispielhafte Hardwarekonfiguration des Servers, Zugriffspunkts (AP) und Clients.
  • Die Hardwarekonfiguration, welche in 16 gezeigt ist, wird beschrieben werden. Eine zentrale Verarbeitungseinheit (CPU) 501 führt verschiedene Prozesse gemäß den Programmen durch, welche in einem Nur-Lese-Speicher (ROM) 502 oder einem Aufzeichnungsmedium 514 gespeichert sind, wie beispielsweise ein Festplattenlaufwerk (HDD), so dass sie als ein Datenprozessor oder ein Kommunikationscontroller arbeitet. Ein Arbeitsspeicher (RAM) 503 speichert Programme, welche durch die CPU 501 ausgeführt werden, oder Daten, wie erforderlich. Die CPU 501, der ROM 502 und der RAM 503 sind miteinander über einen Bus 521 verbunden.
  • Der Bus 521 ist mit einer Eingabe-/Ausgabeschnittstelle 522 verbunden. Die Eingabe-/Ausgabeschnittstelle 522 ist mit einer Eingabeeinheit 511 verbunden, welche durch einen Benutzer betätigt wird, wie beispielsweise eine Tastatur, Schalter, Knöpfe, eine Zeigevorrichtung oder eine Maus, und mit einer Ausgabeeinheit zum Präsentieren verschiedener Information dem Benutzer, wie beispielsweise eine Flüssigkristallanzeige, eine Kathodenstrahlröhre oder ein Lautsprecher. Weiterhin ist die Eingabe-/Ausgabeschnittstelle 522 mit einer Kommunikationseinheit 506 verbunden, die als Datentransceiver arbeitet, und mit einem Laufwerk 513, das Daten von einem Aufzeichnungsmedium 15 ausliest und darauf schreibt, welches darauf montiert ist, wie beispielsweise eine Magnetplatte, eine optische Platte, eine Magneto-optische Platte oder ein Hableiterspeicher. Jedoch sind die Eingabeeinheit 511, die Ausgabeeinheit 512, das Laufwerk 513, das Aufzeichnungsmedium 514 usw. nicht unbedingt in dem Zugriffspunkt (AP) erforderlich, solange Komponenten, welche ausreichend sind, um verschiedene Einstellungen zu erlauben, vorgesehen werden.
  • Die Konfiguration, welch in 16 gezeigt ist, ist ein Beispiel einer Vorrichtung, die als der Server, Zugriffspunkt (AP) und Client verwendet werden kann, welche über das Netzwerk verbunden sind, wie in 1 gezeigt ist. Jedoch, ohne Einschränkung auf die Konfiguration, welche in 16 gezeigt ist, können verschiedene elektronische Vorrichtungen und Informationsverarbeitungsvorrichtungen mit einem Netzwerk verbunden sein. Diese Vorrichtungen können individuell ihre spezifischen Hardwarekonfigurationen aufweisen.
  • Die vorliegende Erfindung ist im Detail im Zusammenhang mit spezifischen Ausführungsformen beschrieben worden. Jedoch ist es offensichtlich den Fachleuten möglich, Modifikationen oder Alternativen vorzunehmen, ohne vom Geist der vorliegenden Erfindung abzuweichen. Das heißt, die vorliegende Erfindung ist mittels von Beispielen offenbart worden und die vorliegende Erfindung sollte nicht als auf die Ausführungsformen beschränkt betrachtet werden. Der Umfang der vorliegenden Erfindung sollte auf der Basis der Ansprüche bestimmt werden.
  • Die Reihe von Prozessen, welche hier beschrieben wurden, können durch Hardware, durch Software oder durch eine Kombination von Hardware und Software ausgeführt werden. Wenn die Reihe von Prozessen durch Software ausgeführt wird, wird ein Programm, welches die Verarbeitungssequenzen definiert, durch Installieren desselben auf einem Speicher eines Computers ausgeführt, welcher in einer speziellen Hardware eingebettet ist, oder auf einem Vielzweckcomputer, der in der Lage ist, verschiedene Prozesse auszuführen.
  • Soweit wie die Ausführungsformen der Erfindung, welche oben beschrieben wurden, implementiert werden, sei zumindest teilweise unter Verwendung der softwaregesteuerten Datenverarbeitungsvorrichtung angemerkt, dass ein Computerprogramm, welches eine solche Softwaresteuerung und eine Übertragung, Speicherung oder ein anderes Medium vorsieht, durch welches ein Computerprogramm vorgesehen wird, als Aspekte der vorliegenden Erfindung in Betracht kommen.
  • Zum Beispiel kann das Programm auf einem Aufzeichnungsmedium aufgezeichnet sein, wie beispielsweise eine Festplatte oder ein Nur-Lese-Speicher (ROM). Alternativ kann das Programm temporär oder permanent auf einem entfernbaren Aufzeichnungsmedium gespeichert (aufgezeichnet) sein, wie beispielsweise eine flexible Platte, ein Compactdisk-Nur-Lese-Speicher (CD-ROM), eine magneto-optische (MO) Platte, eine digitale Vielzweckplatte (DVD), eine Magnetplatte oder ein Halbleiterspeicher. Solch ein entfernbares Medium kann in der Form vorgesehen sein, welche Paketsoftware genannt wird.
  • Statt das Programm von einem entfernbaren Aufzeichnungsmedium auf einem Computer zu installieren, kann das Programm drahtlos von einer Seite zum Herunterladen zu einem Computer transferiert werden, oder durch eine Leitung zu einem Computer über ein Netzwerk transferiert werden, wie beispielsweise ein lokales Netzwerk (LAN) oder das Internet, so dass der Computer das Programm empfangen kann, welches transferiert wird, und das Programm auf einem internen Aufzeichnungsmedium installieren kann, wie beispielsweise eine Festplatte.
  • Die verschiedenen Prozesse, welche hier beschrieben sind, müssen nicht notwendigerweise sequentiell in der beschriebenen Reihenfolge aufgeführt werden, und können parallel oder individuell, wie erforderlich, oder in Übereinstimmung mit der Verarbeitungsfähigkeit einer Vorrichtung, die die Prozesse ausführt, ausgeführt werden. Ein System in dieser Beschreibung bezieht sich auf eine logische Kombination einer Vielzahl von Vorrichtungen, ungeachtet dessen, ob individuelle Bestandteilskomponenten innerhalb des gleichen Gehäuses vorgesehen sind.

Claims (17)

  1. Server (200) zum Übertragen von Daten an einen Client (300), wobei der Server (200) umfasst: einen Datentransceiver (204), welcher konfiguriert ist, um Kommunikationen mit dem Client (300) auszuführen; einen Ratencontroller (210), welcher konfiguriert ist, um eine Bitrate der Daten zu steuern und zu bestimmen, welche an den Client (300) übertragen werden; und einen Datenprozessor, welcher konfiguriert ist, um Daten bereitzustellen, um in Übereinstimmung mit der Bitrate zu übertragen, welche durch den Ratencontroller (210) bestimmt wird; wobei der Server (200) dadurch gekennzeichnet ist, dass der Ratencontroller enthält einen Durchsatzrechner (211), welcher konfiguriert ist, um eine Vielzahl von effektiven Datenübertragungs- und Empfangsperioden zu extrahieren, ausschließlich der ineffektiven Datenübertragungs- und Empfangsperioden, wobei die effektiven und ineffektiven Datenübertragungs- und Empfangsperioden, welche in einer Periode während einer Kommunikationsverbindung auftreten, zwischen dem Server (200) und dem Client (300) aufrecht erhalten werden, und um einen maximalen Durchsatz auf der Basis der Gesamtlänge der Vielzahl von effektiven Datenübertragungs- und Empfangsperioden und der Gesamtmenge von Daten zu berechnen, welche während der effektiven Datenübertragungs- und Empfangsperioden übertragen werden; und einen Bitrateneinsteller (212), welcher konfiguriert ist, um eine Bitrate innerhalb eines Bereichs von bis zu einer maximal zulässigen Bitrate einzustellen, welche dem maximalen Durchsatz entspricht, welcher durch den Durchsatzrechner (211) berechnet wird.
  2. Server (200) gemäß Anspruch 1, wobei der Durchsatzrechner (211) konfiguriert ist, um eine effektive Datenübertragungs- und Empfangsperiode entsprechend einer Periode von einem Start von sukzessiver Datenübertragung an basierend auf einer Fenstergröße bis zum Empfang einer Empfangsbestätigung für die sukzessive übertragenen Daten zu definieren, und um einen maximalen Durchsatz auf der Basis der Länge der effektiven Datenübertragungs- und Empfangsperiode und der Menge von übertragenen Daten zu berechnen.
  3. Server (200) gemäß Anspruch 1, wobei der Durchsatzrechner (211) konfiguriert ist, um eine effektive Datenübertragungs- und Empfangsperiode entsprechend einer Periode von einem Start einer sukzessiven Datenübertragung an basierend auf einer Fenstergröße bis zum Empfang einer Empfangsbestätigung für die sukzessive übertragenen Daten zu definieren, um eine Vielzahl von Teilen von Sampledaten zu erhalten, welche mit einer Vielzahl von effektiven Datenübertragungs- und Empfangsperioden assoziiert sind, und um einen maximalen Durchsatz auf der Basis einer Vielzahl von Teilen von Sampledaten zu berechnen, ausschließlich der Teile von Daten, welche als außerordentliche Werte unter der Vielzahl von erhaltenen Teilen von Sampledaten aufweisend bestimmt wurden.
  4. Server (200) gemäß Anspruch 1, wobei der Bitrateneinsteller konfiguriert ist, um eine Bitrate auf der Basis des Übergangs von einem geschätzten Pufferbetrag eines Clientpuffers einzustellen, und um die Bitrate innerhalb eines Bereichs von bis zu einer oberen Grenze der maximal erlaubten Bitrate entsprechend des maximalen Durchsatzes zu erhöhen, welcher durch den Durchsatzrechner berechnet wird, wenn der geschätzte Pufferbetrag größer oder gleich zu einem vorbestimmten Grenzwert ist.
  5. Server (200) gemäß Anspruch 4, wobei der Bitrateneinsteller konfiguriert ist, um den Betrag des Clientpuffers (302) durch Berechnung gemäß einer Gleichung zu schätzen, welche durch den geschätzten Pufferbetrag des Clientpuffers = B_cli + D_serv – R·T ausgedrückt wird, wobei die folgenden Informationen (a) bis (d) verwendet werden: (a) ein Pufferbetrag B_cli, welcher in Bytes ausgedrückt wird, welcher von dem Client (300) zu der Zeit des Starts der Kommunikation berichtet wird; (b) eine Zeit T, welche in Sekunden ausgedrückt wird, welche von einem Start der Wiedergabe durch den Client an vergeht; (c) ein Betrag D_serv, welcher in Bytes ausgedrückt wird, von Daten, welche von dem Server während der vergangenen Zeit T seit dem Start der Wiedergabe zu dem Client (300) übertragen wird; (d) eine Wiedergaberate R, welche in Bytes pro Sekunde ausgedrückt wird, des Inhalts, welcher von dem übertragenen Inhalt erhältlich ist.
  6. Server (200) gemäß Anspruch 1, wobei der Datentransceiver konfiguriert ist, um eine Kommunikationsbandbreiteninformation von einem Zugriffspunkt zu empfangen, welcher als ein Zwischenglied für Kommunikationen mit dem Client (300) wirkt, wobei die Kommunikationsbandbreiteninformation sich auf eine Kommunikationsbandbreite zwischen dem Zugriffspunkt und dem Client (300) bezieht, und wobei der Bitrateneinsteller konfiguriert ist, um eine Übertragungsbitrate auf der Basis der Kommunikationsbandbreiteninformation einzustellen.
  7. Server (200) gemäß Anspruch 6, wobei die Kommunikationsbandbreiteninformation Information enthält, welche auf der Basis von Daten erzeugt wird, welche zumindest eines von einer Hin- und Rückzeit, einem Empfangssignalstärkenindikator und einer Übertragungsrate der Kommunikation zwischen dem Zugriffspunkt und dem Client (300) betreffen.
  8. Datenkommunikationssystem, welches einen Server (200) gemäß irgendeinem der Ansprüche 1 bis 7 und einen Client (300) umfasst, welcher arbeitet, um Daten von dem Server (200) über ein Netzwerk zu empfangen.
  9. Kommunikationsverarbeitungsverfahren, welches in einem Server ausgeführt wird, der Daten überträgt, wobei das Kommunikationsverarbeitungsverfahren die folgenden Schritte umfasst: Steuern und Bestimmen einer Bitrate von Daten, welche an einen Client übertragen werden; und Bereitstellen von Daten, um in Übereinstimmung mit der in dem Ratensteuerschritt bestimmten Rate zu übertragen; wobei das Verfahren dadurch gekennzeichnet ist, dass der Ratensteuerschritt die folgenden Schritte enthält Extrahieren einer Vielzahl von effektiven Datenübertragungs- und Empfangsperioden, ausschließlich der ineffektiven Datenübertragungs- und Empfangsperioden, wobei die effektiven und ineffektiven Datenübertragungs- und Empfangsperioden auftreten, während eine Kommunikationsverbindung zwischen dem Server und dem Client aufrechterhalten wird, und Einstellen einer Übertragungsbitrate innerhalb eines Bereichs von bis zu einer maximal erlaubten Bitrate entsprechend dem maximalen Durchsatz, welcher in dem Durchsatzberechnungsschritt berechnet wird.
  10. Kommunikationsverarbeitungsverfahren gemäß Anspruch 9, wobei der Durchsatzberechnungsschritt eine effektive Datenübertragungs- und Empfangsperiode entsprechend einer Periode von einem Start einer sukzessiven Datenübertragung an basierend auf einer Fenstergröße bis zum Empfang einer Empfangsbestätigung für die sukzessive übertragenen Daten definiert, und einen maximalen Durchsatz auf der Basis der Länge der effektiven Datenübertragungs- und Empfangsperiode und der Menge von übertragenen Daten berechnet.
  11. Kommunikationsverarbeitungsverfahren gemäß Anspruch 9, wobei der Durchsatzberechnungsschritt eine effektive Datenübertragungs- und Empfangsperiode entsprechend einer Periode von einem Start der sukzessiven Datenübertragung an basierend auf einer Fenstergröße bis zum Empfang einer Empfangsbestätigung für die sukzessive übertragenen Daten definiert, eine Vielzahl von Teilen von Sampledaten, welche mit einer Vielzahl von effektiven Datenübertragungs- und Empfangsperioden assoziiert sind, erhält, und einen maximalen Durchsatz auf der Basis einer Vielzahl von Teilen von Sampledaten ausschließlich der Teile von Daten berechnet, welche als außerordentliche Werte unter der Vielzahl von Teilen von erhaltenen Sampledaten aufweisend bestimmt wird.
  12. Kommunikationsverarbeitungsverfahren gemäß Anspruch 9, wobei der Bitrateneinstellschritt eine Bitrate auf der Basis eines Übergangs von einem geschätzten Pufferbetrag eines Clientpuffers einstellt, und die Bitrate innerhalb eines Bereichs von bis zu einer oberen Grenze der maximal erlaubten Bitrate entsprechend dem maximalen Durchsatz erhöht, welcher in dem Durchsatzberechnungsschritt berechnet wird, wenn der geschätzte Pufferbetrag größer oder gleich einem vorbestimmten Grenzwert ist.
  13. Kommunikationsverarbeitungsverfahren gemäß Anspruch 12, wobei der Bitrateneinstellschritt den Betrag des Clientpuffers durch eine Berechnung gemäß einer Gleichung abschätzt, welche als die abgeschätzte Puffermenge = B_cli + D_serv – R·T ausgedrückt wird, wobei die folgenden Informationen (a) bis (d) verwendet werden: (a) ein Pufferbetrag B_cli, welcher in Bytes ausgedrückt wird, welcher von dem Client (300) zu der Zeit des Starts der Kommunikation berichtet wird; (b) eine Zeit T, welche in Sekunden ausgedrückt wird, welche von einem Start der Wiedergabe durch den Client an vergeht; (c) ein Betrag D_serv, welcher in Bytes ausgedrückt wird, von Daten, welche von dem Server während der vergangenen Zeit T seit dem Start der Wiedergabe zu dem Client (300) übertragen werden; (d) eine Wiedergaberate R, welche in Bytes pro Sekunde ausgedrückt wird, des Inhalts, welcher von dem übertragenen Inhalt erhältlich ist.
  14. Kommunikationsverarbeitungsverfahren gemäß Anspruch 9, welches weiterhin den Schritt des Empfangen von Kommunikationsbandbreiteninformation von einem Zugriffspunkt umfasst, welcher als ein Zwischenglied für Kommunikationen mit dem Client wirkt, wobei die Kommunikationsbandbreiteninformation eine Kommunikationsbandbreite zwischen dem Zugriffspunkt und dem Client betrifft, wobei der Bitrateneinstellschritt eine Übertragungsbitrate auf der Basis von der Kommunikationsbandbreiteninformation einstellt.
  15. Kommunikationsverarbeitungsverfahren gemäß Anspruch 14, wobei die Kommunikationsbandbreiteninformation Information enthält, welche auf der Basis von Daten erzeugt wird, welche zumindest eines von einer Hin- und Rückzeit, einem Empfangssignalstärkenindikator und einer Übertragungsrate der Kommunikationen zwischen dem Zugriffspunkt und dem Client (300) betreffen.
  16. Computerprogramm, welches computerlesbare Instruktionen enthält, welche, wenn in einen Computer geladen, den Computer konfigurieren, um das Verfahren gemäß irgendeinem der Ansprüche 9 bis 15 durchzuführen.
  17. Speichermedium, welches konfiguriert ist, um das Computerprogramm gemäß Anspruch 16 darauf oder darin gespeichert aufzuweisen.
DE200660001019 2005-03-28 2006-03-09 Kommunikationsverarbeitungsvorrichtung, Datenübertragungssystem und Verfahren für Kommunikationsverarbeitung Active DE602006001019T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2005092452 2005-03-28
JP2005092452A JP4643330B2 (ja) 2005-03-28 2005-03-28 通信処理装置、データ通信システム、および通信処理方法、並びにコンピュータ・プログラム

Publications (2)

Publication Number Publication Date
DE602006001019D1 DE602006001019D1 (de) 2008-06-12
DE602006001019T2 true DE602006001019T2 (de) 2009-05-28

Family

ID=36271430

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200660001019 Active DE602006001019T2 (de) 2005-03-28 2006-03-09 Kommunikationsverarbeitungsvorrichtung, Datenübertragungssystem und Verfahren für Kommunikationsverarbeitung

Country Status (7)

Country Link
US (1) US7987284B2 (de)
EP (1) EP1708438B1 (de)
JP (1) JP4643330B2 (de)
KR (1) KR101234890B1 (de)
CN (1) CN1841984B (de)
DE (1) DE602006001019T2 (de)
TW (1) TW200637282A (de)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8868772B2 (en) 2004-04-30 2014-10-21 Echostar Technologies L.L.C. Apparatus, system, and method for adaptive-rate shifting of streaming content
DE602005009755D1 (de) * 2005-04-11 2008-10-23 Ericsson Telefon Ab L M Technik zur steuerung von datenpaketübermittlungen von daten mit variabler bitrate
JP4407700B2 (ja) 2007-02-02 2010-02-03 日本電気株式会社 通信端末、通信システム、輻輳制御方法、及び輻輳制御用プログラム
JP4367505B2 (ja) 2007-03-06 2009-11-18 日本電気株式会社 通信端末、通信システム、輻輳制御方法、及び輻輳制御用プログラム
US9300923B2 (en) * 2007-03-26 2016-03-29 Pelco, Inc. Method and apparatus for improving video performance in a wireless surveillance system
KR100861594B1 (ko) * 2007-04-23 2008-10-07 주식회사 케이티프리텔 멀티미디어 데이터 전송률 제어 장치 및 그 방법
US9872066B2 (en) * 2007-12-18 2018-01-16 Ibiquity Digital Corporation Method for streaming through a data service over a radio link subsystem
US8325800B2 (en) 2008-05-07 2012-12-04 Microsoft Corporation Encoding streaming media as a high bit rate layer, a low bit rate layer, and one or more intermediate bit rate layers
US8379851B2 (en) * 2008-05-12 2013-02-19 Microsoft Corporation Optimized client side rate control and indexed file layout for streaming media
EP2129130A1 (de) * 2008-05-26 2009-12-02 THOMSON Licensing Vereinfachtes Übertragungsverfahren eines Signalflusses zwischen einem Sender und einem elektronischen Gerät
US7925774B2 (en) 2008-05-30 2011-04-12 Microsoft Corporation Media streaming using an index file
US8254441B2 (en) * 2008-08-18 2012-08-28 Sprint Communications Company L.P. Video streaming based upon wireless quality
US8265140B2 (en) 2008-09-30 2012-09-11 Microsoft Corporation Fine-grained client-side control of scalable media delivery
KR101051709B1 (ko) * 2008-12-18 2011-07-25 (주)씨디네트웍스 데이터 전송 방법 및 장치
US9380091B2 (en) * 2012-06-12 2016-06-28 Wi-Lan Labs, Inc. Systems and methods for using client-side video buffer occupancy for enhanced quality of experience in a communication network
US8631455B2 (en) * 2009-07-24 2014-01-14 Netflix, Inc. Adaptive streaming for digital content distribution
WO2011025502A1 (en) 2009-08-31 2011-03-03 Hewlett-Packard Development Company, L.P. Reducing communication delay of video data
US20120314616A1 (en) * 2009-12-09 2012-12-13 Tengywe Eric Hong Method and apparatus pertaining to data-session peak-throughput measurements
US8745209B2 (en) * 2009-12-18 2014-06-03 Google Inc. Matching encoder output to network bandwidth
CN101808239A (zh) * 2010-03-01 2010-08-18 北京东方广视科技股份有限公司 一种控制ts流播出的方法和装置
EP2381621A1 (de) * 2010-04-21 2011-10-26 Thomson Licensing Verfahren zur Beurteilung einer verfügbaren Pfadbitrate auf Grundlage einer Quittungspfadauswahl
US9003022B2 (en) 2010-06-17 2015-04-07 Zettics, Inc. Determining an average effective data through-put as corresponds to a network-served end user
JP5737871B2 (ja) * 2010-06-29 2015-06-17 キヤノン株式会社 情報処理装置、画像出力装置、情報処理方法およびプログラム
JP5329581B2 (ja) 2011-02-04 2013-10-30 株式会社東芝 無線通信端末および無線通信方法
WO2012138971A2 (en) * 2011-04-06 2012-10-11 Sejent Corporation Measuring instantaneous bit rate in a network connection
JP5909886B2 (ja) * 2011-06-10 2016-04-27 ソニー株式会社 通信装置及び通信方法、並びに通信システム
JP5803306B2 (ja) * 2011-06-10 2015-11-04 ソニー株式会社 通信装置及び通信方法、並びに通信システム
US9391911B1 (en) * 2011-07-15 2016-07-12 Google Inc. Congestion window modification
US20130246575A1 (en) * 2011-09-16 2013-09-19 Qualcomm Incorporated Systems and methods for network quality estimation, connectivity detection, and load management
US9736045B2 (en) 2011-09-16 2017-08-15 Qualcomm Incorporated Systems and methods for network quality estimation, connectivity detection, and load management
CN102333350B (zh) * 2011-10-19 2014-02-26 华为技术有限公司 提高小流量用户体验的方法、装置和系统
JP5814829B2 (ja) * 2012-03-01 2015-11-17 株式会社東芝 無線通信装置及び方法
US20130305332A1 (en) * 2012-05-08 2013-11-14 Partha Narasimhan System and Method for Providing Data Link Layer and Network Layer Mobility Using Leveled Security Keys
WO2014069642A1 (ja) * 2012-11-05 2014-05-08 日本電気株式会社 通信装置、送信データ出力制御方法、及びそのプログラム
US9049731B2 (en) * 2012-12-03 2015-06-02 At&T Mobility Ii Llc Facilitation of bandwidth-based femto cell management
US9307432B2 (en) * 2013-01-03 2016-04-05 Qualcomm Incorporated Processing delay estimate based on crowdsourcing data
US10171887B2 (en) * 2013-03-13 2019-01-01 Comcast Cable Communications, Llc Methods and systems for intelligent playback
JP6163954B2 (ja) * 2013-08-08 2017-07-19 富士通株式会社 パケット解析プログラム、パケット解析装置およびパケット解析方法
KR102154800B1 (ko) * 2014-01-10 2020-09-10 삼성전자주식회사 전자 장치의 데이터 스트리밍 방법 및 그 전자 장치
JP6459645B2 (ja) 2015-03-06 2019-01-30 富士通株式会社 スループット計測プログラム、スループット計測方法及びスループット計測装置
JP2016184824A (ja) * 2015-03-25 2016-10-20 富士通株式会社 パケット解析プログラム、パケット解析装置およびパケット解析方法
DE102015106405A1 (de) * 2015-04-27 2016-10-27 Intel IP Corporation Verfahren und vorrichtungen auf der basis vondynamischer empfangsdiversität
JP6464911B2 (ja) * 2015-05-01 2019-02-06 富士通株式会社 情報処理システム、情報処理システムの制御方法及び受信装置
US10412779B2 (en) 2015-09-18 2019-09-10 Whatsapp Inc. Techniques to dynamically configure jitter buffer sizing
US9749178B2 (en) * 2015-09-18 2017-08-29 Whatsapp Inc. Techniques to dynamically configure target bitrate for streaming network connections
JP6589505B2 (ja) 2015-09-24 2019-10-16 ヤマハ株式会社 ルータ
US10516593B2 (en) * 2016-02-17 2019-12-24 Amit Goel Method and network monitoring device for calculating throughput of traffic flows in communication networks
US10237779B2 (en) * 2016-03-23 2019-03-19 Arris Enterprises Llc Identifying congested access points within a network based on measured throughput
JP2017183842A (ja) * 2016-03-28 2017-10-05 富士通株式会社 計測装置、計測方法、および、通信システム
US10499285B2 (en) * 2016-07-14 2019-12-03 Cloudstreet Oy Maximum cell throughput estimation
US10887794B2 (en) * 2018-04-03 2021-01-05 Samsung Electronics Co., Ltd. Method and apparatus for controlling data receiving rate in mobile communication system
CN110300315B (zh) * 2019-07-24 2021-08-13 北京达佳互联信息技术有限公司 一种视频码率确定方法、装置、电子设备及存储介质
JPWO2022269723A1 (de) * 2021-06-21 2022-12-29

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5513185A (en) * 1992-11-23 1996-04-30 At&T Corp. Method and apparatus for transmission link error rate monitoring
US6105064A (en) * 1997-05-30 2000-08-15 Novell, Inc. System for placing packets on network for transmission from sending endnode to receiving endnode at times which are determined by window size and metering interval
JPH1172850A (ja) 1997-08-29 1999-03-16 Dainippon Printing Co Ltd 透過型投影スクリーン及びマルチ投影装置
JP3602972B2 (ja) * 1998-07-28 2004-12-15 富士通株式会社 通信性能測定装置及びその測定方法
JP2000216811A (ja) 1999-01-22 2000-08-04 Chokosoku Network Computer Gijutsu Kenkyusho:Kk フロ―制御方法
JP2000270015A (ja) 1999-03-18 2000-09-29 Toshiba Corp コンテンツ配信システム、同システムに用いられるサーバコンピュータ、およびサーバコンピュータの制御方法
CA2299022A1 (en) 1999-04-30 2000-10-30 Nortel Networks Corporation Method and apparatus for bandwidth management of aggregate data flows
JP2001144802A (ja) 1999-11-11 2001-05-25 Canon Inc データ通信装置及びその方法及び通信システム及び記憶媒体
US6940831B1 (en) * 1999-11-29 2005-09-06 Matsushita Electric Industrial Co., Ltd Wireless communications system
JP4596693B2 (ja) 2000-07-06 2010-12-08 パナソニック株式会社 ストリーミング方法およびそれを実行するシステム
AU2001277773A1 (en) * 2000-09-22 2002-04-02 Matsushita Electric Industrial Co., Ltd. Data transmitting/receiving method, transmitting device, receiving device, transmitting/receiving system, and program
JP2002204255A (ja) 2000-10-27 2002-07-19 Matsushita Electric Ind Co Ltd 伝送レート制御装置及び伝送レート制御方法
JP3699910B2 (ja) * 2000-10-31 2005-09-28 株式会社東芝 データ伝送装置、データ伝送方法及びプログラム
US20020071388A1 (en) * 2000-11-16 2002-06-13 Einar Bergsson Selectable network protocol
AU2002222097A1 (en) * 2000-11-29 2002-06-11 British Telecommunications Public Limited Company Transmitting and receiving real-time data
KR20040041170A (ko) * 2001-09-21 2004-05-14 브리티쉬 텔리커뮤니케이션즈 파블릭 리미티드 캄퍼니 혼잡 제어를 위한 전송률을 계산하기 위해 수신 버퍼 크기를 사용하는 데이터 통신 방법 및 시스템
JP2003169090A (ja) * 2001-11-30 2003-06-13 Fujitsu Ltd 伝送システム
KR100474719B1 (ko) * 2001-11-30 2005-03-08 삼성전자주식회사 이동통신시스템에서 제어정보를 송수신하는 방법 및 장치
US7237007B2 (en) * 2001-12-05 2007-06-26 Qualcomm Incorporated Method and system for flow control between a base station controller and a base transceiver station
AU2003252347A1 (en) * 2002-07-31 2004-03-11 Sharp Kabushiki Kaisha Data communication device, its intermittent communication method, program describing its method, and recording medium on which program is recorded
FI20021527A0 (fi) * 2002-08-27 2002-08-27 Oplayo Oy Menetelmä ja järjestelmä mediavirran kaistanleveyden säätämiseksi
JP4061643B2 (ja) 2002-12-11 2008-03-19 ソニー株式会社 情報処理システム、情報処理装置および方法、記録媒体、並びにプログラム
JP4192627B2 (ja) 2003-02-26 2008-12-10 日本電気株式会社 パケット送受信方法、及び装置
JP2004266741A (ja) 2003-03-04 2004-09-24 Sony Corp 配信システム、送信装置および方法、受信装置および方法、記録媒体、並びにプログラム
JP3731665B2 (ja) * 2003-03-27 2006-01-05 ソニー株式会社 データ通信システム、情報処理装置および情報処理方法、記録媒体、並びに、プログラム
US7502352B2 (en) * 2003-05-16 2009-03-10 Alcatel-Lucent Usa Inc. Scheduling method for quality of service differentiation for non-real time services in packet radio networks
JP3988682B2 (ja) 2003-06-10 2007-10-10 ソニー株式会社 送信装置および方法、記録媒体、並びにプログラム
DE10337067B4 (de) * 2003-08-12 2008-04-17 Infineon Technologies Ag Optimierung des Datendurchsatzes einer Mobilfunk-Verbindung über effiziente Pakettypwechsel
KR20050020526A (ko) * 2003-08-23 2005-03-04 삼성전자주식회사 이동통신시스템에서 비트 인터리빙장치 및 방법

Also Published As

Publication number Publication date
KR20060104915A (ko) 2006-10-09
TWI308440B (de) 2009-04-01
EP1708438B1 (de) 2008-04-30
US7987284B2 (en) 2011-07-26
CN1841984A (zh) 2006-10-04
DE602006001019D1 (de) 2008-06-12
CN1841984B (zh) 2011-11-09
KR101234890B1 (ko) 2013-02-19
US20060218264A1 (en) 2006-09-28
EP1708438A1 (de) 2006-10-04
TW200637282A (en) 2006-10-16
JP4643330B2 (ja) 2011-03-02
JP2006279283A (ja) 2006-10-12

Similar Documents

Publication Publication Date Title
DE602006001019T2 (de) Kommunikationsverarbeitungsvorrichtung, Datenübertragungssystem und Verfahren für Kommunikationsverarbeitung
US9154396B2 (en) Passive measurement of available link bandwidth
US10044466B2 (en) Server-side adaptive bit rate control for DLNA HTTP streaming clients
Houdaille et al. Shaping HTTP adaptive streams for a better user experience
US7590060B2 (en) Network congestion recognition and management
US6850525B2 (en) Voice over internet protocol (VoIP) network performance monitor
DE60133324T2 (de) Schubsdatenpaket zur Minimierung von Datenpufferungsverzögerung
JP4309185B2 (ja) ストリーミング・メディアの輻輳制御メカニズム
EP1335525B1 (de) Verfahren zur Ermittlung der peer-to-peer Servicequalität (QOS)
CN108833930B (zh) 直播数据传输控制方法、装置、直播设备及存储介质
DE60313568T2 (de) Adaptives Schalten verzögerter Bestätigungen für TCP Anwendungen
US7773509B2 (en) Method and system for traffic control for providing quality of service in a network
DE60307505T2 (de) Verfahren zur verbesserung der qualität einer medienstromübertragung
DE102009025897A1 (de) System und Verfahren zum Einstellen von Media Access Control-Parametern in einem drahtlosen Netzwerk
DE112006000135T5 (de) Hop-By-Hop Fluss-Steuerung in drahtlosen Mesh-Netzwerken
JP4402619B2 (ja) マルチキャスト通信フロー制御方法および装置
JP2023130418A (ja) クライアント、サーバ、受信方法及び送信方法
Krishnamoorthi et al. Slow but steady: Cap-based client-network interaction for improved streaming experience
US20060002425A1 (en) Determining available bandwidth in a network
Khan et al. QoE in DASH
Vassiliou et al. Requirements for the transmission of streaming video in mobile wireless networks
DE602004007399T2 (de) Bereitstellen einer rückmeldung unter verwendung von general nack-report-blocks and loss-rle-report blocks
CN110191060A (zh) 一种调整数据包发送码率的方法、装置、设备及系统
CA2804741A1 (en) Media server
CN110381036A (zh) 一种用于dash流媒体的tcp拥塞控制方法

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8320 Willingness to grant licences declared (paragraph 23)