DE602004007329T2 - Zuverlässiges Multimedia Streaming mit wiederholten Übertragungen - Google Patents

Zuverlässiges Multimedia Streaming mit wiederholten Übertragungen Download PDF

Info

Publication number
DE602004007329T2
DE602004007329T2 DE602004007329T DE602004007329T DE602004007329T2 DE 602004007329 T2 DE602004007329 T2 DE 602004007329T2 DE 602004007329 T DE602004007329 T DE 602004007329T DE 602004007329 T DE602004007329 T DE 602004007329T DE 602004007329 T2 DE602004007329 T2 DE 602004007329T2
Authority
DE
Germany
Prior art keywords
missing
packets
time
group
packet
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
DE602004007329T
Other languages
English (en)
Other versions
DE602004007329D1 (de
Inventor
John H. 94539 Grossman IV
Dustin L. 94041 Green
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.)
Microsoft Corp
Original Assignee
Microsoft 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 Microsoft Corp filed Critical Microsoft Corp
Publication of DE602004007329D1 publication Critical patent/DE602004007329D1/de
Application granted granted Critical
Publication of DE602004007329T2 publication Critical patent/DE602004007329T2/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
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • H04L1/1628List acknowledgements, i.e. the acknowledgement message consisting of a list of identifiers, e.g. of sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1829Arrangements specially adapted for the receiver end
    • H04L1/1848Time-out mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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]
    • 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
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • H04L12/5601Transfer mode dependent, e.g. ATM
    • H04L2012/5603Access techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols

Description

  • Diese Erfindung bezieht sich im Allgemeinen auf eine Netzwerkkommunikationstechnologie.
  • Auf dem Gebiet der elektronischen Kommunikation, wo es zumindest einen Grad an angenommener Unzuverlässigkeit gibt, weisen viele Kommunikationssysteme einen Mechanismus auf zur Bestimmung, ob eine bestimmte Kommunikation erfolgreich empfangen wurde oder ob die Kommunikation in gewisser Weise fehlgeschlagen ist oder beides.
  • Man nehme als Beispiel TCP. Dies ist die Kurzform für Transmission Control Protocol (Übertragungskontrollprotokoll). Es ist eines der hauptsächlichen Protokolle in TCP/IP-Netzwerken. Während das IP-Protokoll nur Pakete behandelt, befähigt TCP zwei Hosts, eine Verbindung aufzubauen und Datenströme auszutauschen.
  • Im Allgemeinen garantiert TCP die Zustellung von Daten und gewährleistet auch, dass Daten in derselben Reihenfolge, in welcher sie gesendet wurden, zugestellt werden. Um dies zu tun, verwendet TCP eine empfangsbestätigungsbasierte Wiederholungsprozedur, um fehlgeschlagene Kommunikation zu erkennen und zu wiederholen.
  • In TCP sendet ein Host eine Gruppe (d. h. ein Fenster) an Datenpaketen an einen Empfänger über ein Kommunikationsnetzwerk. Die Gruppe kann ein „Fenster" genannt werden. Ein TCP-Fenster ist die Menge an ausstehenden (d. h. durch den Empfänger nicht empfangsbestätigter) Daten, die ein Sender über eine bestimmte Verbindung senden darf, bevor er eine ACK vom Empfänger zurückerhält, dass der Empfänger etwas davon erhalten hat.
  • ACK steht kurz für Empfangsbestätigungskode (acknowledgement, Empfangsbestätigung). Üblicherweise ist dies ein Übertragungssteuerkennzeichen, das anzeigt, dass eine übertragene Nachricht unbeschädigt oder ohne Fehler empfangen wurde oder dass die Empfangsstation bereit ist, weitere Übertragungen anzunehmen. Der Empfänger sendet den Kode an den Sender, um zu erkennen zu geben, dass die Übertragung empfangen wurde.
  • Nachdem der Host das Fenster an Paketen gesendet hat, wartet er auf einen ACK von diesem Empfänger, der anzeigt, dass alle oder einige Pakete des Fensters erfolgreich emp fangen wurden. Wenn er innerhalb einer festgelegten Wiederholungszeitperiode keinen ACK empfangen kann, sendet der Host alle Pakete des Fensters erneut. Somit nimmt der Sender, wenn er keinen ACK empfängt, an, dass der Empfänger keine der Daten seit dem letzten Zeitpunkt, an dem der Sender einen ACK vom Empfänger erhalten hat, empfangen hat.
  • Der durch den Host empfangene ACK kann das letzte zusammenhängende Paket eines Fensters, das erfolgreich empfangen wurde, bezeichnen. In diesem Fall sendet der Host alle der Pakete in dem Fenster nachfolgend dem durch den ACK als erfolgreich empfangen spezifizierten Paket erneut.
  • Konventionelle Retry (Wiederholungs-) Methoden
  • Konventionelle Wiederholungsmethoden senden üblicherweise große Gruppen an Daten wieder – bis hin zu dem Gegenwert eines gesamten Fensters an Paketen – wenn ein Fehlschlagen der Kommunikationen erkannt wird. Diese konventionellen Methoden sind typischerweise auch ACK-basiert. Darüber hinaus tragen diese konventionellen Methoden überlicherweise keiner zeitkritischen Eigenschaft des Empfangs von Daten Rechnung. Ein Bespiel einer solchen konventionellen Methode ist die TCP-Wiederholungsmethode, die oben besprochen wurde.
  • Jene gewöhnlicher Fertigkeit auf dem Gebiet sind im Allgemeinen vertraut mit konventionellen Wiederholungsmethoden und insbesondere mit der Wiederholungsmethode von TCP.
  • US-A-5 918 002 offenbart eine selektive Wiederübertragungstechnik. Die beschriebene Client-Komponente zum Empfangen der Datenpakete beinhaltet einen Ausspielungs-(playout)-Zwischenspeicher. Die Datenpakete kommen am Client-Computer in einer anderen Reihenfolge an als sie ursprünglich versendet wurden und werden wieder in der ursprünglichen sequentiellen Reihenfolge angeordnet. Sobald Datenpakete ankommen, werden die Sequenznummern geprüft. Wenn ein Datenpaket außerhalb der Reihenfolge ankommt, prüft der Client-Computer den Ausspielungszwischenspeicher, um zu sehen, ob das Paket tatsächlich fehlt oder ob das ausgelassene Paket vorher angekommen ist und bereits in dem Ausspielungszwischenspeicher gespeichert ist. Wenn das ausgelassene Datenpaket nicht in dem Ausspielungszwischenspeicher gefunden wird, berechnet der Client-Computer eine Round-Trip-(Rundreise)-Zeit für das fehlende Datenpaket. Wenn die Differenz zwischen dem Zeitstempel des fehlenden Datenpakets und dem Zeitstempel eines gegenwärtig ausgegebenen Datenpaketes größer als die Round-Trip-Zeit ist, sendet der Client-Computer eine Anforderung der erneuten Übertragung des fehlenden Datenpaketes an den Server. Wenn unzureichend Zeit bleibt, um vernünftigerweise eine rechtzeitige Wiederübertragung zu erwarten, dann wird das Datenpaket als nicht-wiederherstellbar angenommen und das fehlende Paket wird dementsprechend verworfen.
  • Papadopoulos, C. et al.: „Proceedings of the IEEE International Workshop an Network and Operating Systems Support for Digital Audio and Video", 1996 Seiten 5 bis 12, XP002251288 offenbart eine wiederübertragungsbasierte Fehlerüberwachung für Continuous-Media-Anwendungen (continuous media, zusammenhängende Medien). Eine selektive Wiederholungstechnik wird angenommen und begrenztes Zwischenspeichern beim Empfänger und Sender wird eingeführt. Lückenbasierte Verlusterkennung am Empfänger kombiniert mit NACKs wird verwendet. Eine Lücke wird erkannt, wenn ein Paket mit einer Sequenznummer, die höher als erwartet ist, ankommt. Um verspätete Wiederübertragungen zu vermeiden, bewahrt der Empfänger eine Abschätzung der Round-Trip-Verzögerung (RTD, round trip delay) und die Vorführungszeit für jeden Rahmen (frame) auf und stellt sicher, dass Wiederübertragungsanforderungen nur dann erzeugt werden, wenn die Vorführungszeit größer als die gegenwärtige RTD-Abschätzung ist. Der Ausspielungs-(playout)-Zwischenspeicherstatus besteht aus einer Bitmap, die das Vorhandensein oder Fehlen von Paketen kennzeichnet. Wenn eine Lücke erkannt wird und ausreichend Zeit für Wiederherstellung vorhanden ist, wird sofort eine Wiederübertragungsanforderung gesendet und Wiederübertragung wird in Einheiten von Paketen abgeleistet. Das Dokument offenbart auch eine Erweiterung des Protkolls auf vielfache Wiederübertragungen.
  • Es ist dann die Aufgabe der vorliegenden Erfindung, ein verbessertes Verfahren zur selektiven Wiederübertragung fehlender Daten vorzusehen.
  • Diese Aufgabe wird durch den Gegenstand der unabhängigen Ansprüche gelöst.
  • Bevorzugte Ausführungsformen sind in den abhängigen Ansprüchen definiert.
  • Diese Erfindung bezieht sich im Allgemeinen auf eine Netzwerkkommunikationstechnologie. Eine hierin beschriebene Ausführung führt eine zeitbewusste Best-Effort-(best-effort: größte Mühe)-Lochfüllungskommunikationswiederholungsfunktion über ein Kommunikationsnetzwerk durch. Dies wird in einer Weise getan, die erfolgreichen Empfang von Daten annimmt, solange der Empfänger nichts gegenteiliges indiziert. Insbesondere kennzeichnet die Indi kation die fehlenden Daten. Mithilfe dieser Indikation sendet der Sender nur die speziell gekennzeichneten fehlenden Daten erneut.
  • Diese Zusammenfassung an sich ist nicht zur Beschränkung des Geltungsbereiches dieses Patents bestimmt. Darüber hinaus ist die Überschrift dieses Patents nicht zu Beschränkung des Geltungsbereiches dieses Patents bestimmt. Zum besseren Verständnis der vorliegenden Erfindung sei auf die folgende detaillierte Beschreibung und die anhängigen Ansprüche im Zusammenspiel mit den begleitenden Zeichnungen verwiesen. Der Schutzbereich der vorliegenden Erfindung wird durch die anhängigen Ansprüche dargelegt.
  • Kurze Beschreibung der Zeichnungen
  • Überall in den Zeichnungen werden dieselben Nummern verwendet, um Bezug auf gleiche Elemente und Merkmale zu nehmen.
  • 1 ist ein Diagramm, welches ein typisches Netzwerk und eine Momentaufnahme eines Kommunikationsstatus gemäß einer hierin beschriebenen Ausführung darstellt.
  • 2 ist ein Flussdiagramm, welches eine hierin beschriebene methodologische Ausführung zeigt.
  • 3 ist ein Flussdiagramm, welches eine hierin beschriebene methodologische Ausführung beschreibt.
  • 4 stellt eine beispielhafte Umgebung dar, in welcher eine hierin beschriebene Ausführung angewendet werden kann.
  • 5 stellt ein Beispielvorführungsgerät, ein TV, und verschiedene Eingabegeräte, die mit dem Vorführungsgerät Wechselwirken, dar.
  • 6 ist ein Beispiel einer Betriebskonfiguration, die (ganz oder teilweise) zur Umsetzung zumindest einer hierin beschriebenen Ausführungsform geeignet ist.
  • Detaillierte Beschreibung
  • In der folgenden Beschreibung werden zum Zwecke der Erklärung spezielle Zahlen, Materialien und Anordnungen dargelegt, um ein gründliches Verständnis der vorliegenden Erfindung zu unterstützen. Jedoch wird es dem Fachmann offensichtlich sein, dass die vorlie gende Erfindung ohne die speziellen beispielhaften Details betrieben werden kann. In anderen Fällen werden wohlbekannte Merkmale ausgelassen oder vereinfacht, um die Beschreibung der beispielhaften Ausführungen der vorliegenden Erfindung zu verdeutlichen und dadurch die vorliegende Erfindung besser zu erklären. Ferner sind zum leichteren Verständnis bestimmte Verfahrensschritte als getrennte Schritte geschildert; jedoch sollten diese getrennt geschilderten Schritte nicht als notwendigerweise reihenfolgenabhängig in ihrer Ausführung ausgelegt werden.
  • Die folgende Beschreibung legt eine oder mehrere beispielhafte Ausführungen eines zeitbewussten Best-Effort-Lochfüllungswiederholungsverfahrens- und -systems für Netzwerckommunikation dar, die in den anhängigen Ansprüchen vorgetragene Elemente beinhalten. Diese Ausführungen sind mit Genauigkeit im Detail beschrieben, um gesetzlich festgelegte Bestimmungen für schriftliche Beschreibung, Ausführbarkeit und Best-Mode zu erfüllen. Jedoch ist die Beschreibung selbst nicht dazu bestimmt, den Schutzbereich des Patentes einzuschränken. Die Erfinder wollen diese beispielhaften Ausführungen als Beispiele verstanden wissen. Die Erfinder beabsichtigen nicht, dass diese beispielhaften Ausführungen den Schutzbereich der beanspruchten vorliegenden Erfindung einschränken; vielmehr haben die Erfinder in Betracht gezogen, dass die beanspruchte vorliegende Erfindung auch auf andere Art und Weisen ausgeführt oder umgesetzt werden könnte in Verbindung mit anderen gegenwärtigen oder zukünftigen Technologien.
  • Ein Beispiel für eine Ausführungsform eines zeitbewussten Best-Effort-Lochfüllungswiederholungsverfahrens und -systems für Netzwerkkommunikation kann als eine „beispielhafte Lochfüllungswiederholungsmethode" bezeichnet werden.
  • Einführung
  • Die eine oder die mehreren nachstehend beschriebenen beispielhaften Ausführungen der vorliegenden beanspruchten Erfindung können durch das Vorführungsgerät 408 der 4 und 5, den Computer 602 der 6 und/oder als Teil einer Rechenumgebung wie die in den 4 bis 6 gezeigte verwirklicht werden.
  • Konventionelle Wiederholungsmethoden senden typischerweise große Gruppen an Daten als Reaktion auf einen Kommunikationsfehlschlag wieder. Typischerweise sind diese konventionellen Methoden ACK-basiert und tragen einer zeitkritischen Natur des Datenempfangs keine Rechnung.
  • Solche konventionellen Wiederholungsmethoden sind ineffizient für Bedingungen, in denen sich eine große Datenmenge einseitig durch ein Netzwerk ergießt, z. B. in zeitempfindlichen Streaming-Multimediadatenanwendungen. Die konventionelle Methode ist aufgrund der häufigen Verwendung von ACK-Paketen vom Empfänger zum Sender und weil sie dazu tendieren, große Datenblöcke während einer Wiederholung erneut zu senden, wenn nur manche der wiedergesendeten Daten fehlen (eher als nur dann, wenn alle der wiedergesendeten Daten ausstehen) ineffizient.
  • Bei konventionellen ACK-basierten Methoden ist üblicherweise ein Kompromiss bei der Wahl der Fenstergröße involviert. In der Abwesenheit von Fehlern erlaubt eine große Fenstergröße einem viele Daten mit einer hohen Bandbreite über eine Verbindung mit hoher Latenzzeit zu senden. Eine kleine Fenstergröße reduziert die Datenmenge, die unnötigerweise wieder zu senden ist, wenn ein Paket verloren geht.
  • Typischerweise ruft dieser Kompromiss eine Situation mit langen Timeouts herauf (z. B. wenn der Sender auf ein ACK wartet). Wenn die Latenzzeit vom Sender zum Empfänger lang ist im Vergleich zur Bitrate, werden diese konventionellen ACK-basierten Methoden mit zunehmendem Datenpaketverlust weniger effizient.
  • Die beispielhafte Lochfüllungswiederholungsmethode bewältigt diese Hindernisse der konventionellen Wiederholungsmethoden. Sie erhöht die Effizienz der Kommunikation – insbesondere für Bedingungen, wo sich eine große Datenmenge einseitig durch ein Netzwerk ergießt. So wie es bei Streaming-Multimediadaten der Fall ist.
  • Die beispielhafte Lochfüllungswiederholungsmethode führt eine zeitbewusste Best-Effort-Lochfüllungskommunikationswiederholungsfunktion über ein Kommunikationsnetzwerk aus. Eine NACK-basierte Herangehensweise benutzend sendet der Sender erneut nur Daten an den Empfänger, die der Empfänger als „nicht empfangen worden" identifiziert.
  • Sie wird mit „Best-Effort" bezeichnet, da es nicht garantiert ist, dass der Empfänger die Daten erhält. Jedoch gewährleistet die beispielhafte Lochfüllungswiederholungsmethode, dass der Empfänger entweder alle Datenpakete erhält oder erkennt, dass er nicht alle Datenpakete erhalten hat.
  • Ferner ist die beispielhafte Lochfüllungswiederholungsmethode befähigt, Versuche, fehlende Daten zu erhalten, abzubrechen, wenn diese Daten irrelevant werden, weil sie zu alt sind. Anders als konventionelle Methoden kann die beispielhafte Lochfüllungswiederholungsmethode eine effiziente, nicht stoßhafte Hochdurchsatzverbindung über ein Kommunikationsnetzwerk, z. B. dem Internet, sogar in Gegenwart von Latenzzeiten, die hoch sind verglichen mit der Datenrate und signifikantem Datenpaketverlust, aufrecht erhalten.
  • Die beispielhafte Lochfüllungswiederholungsmethode
  • 1 stellt ein typisches Kommunikationsnetzwerk dar mit einem Host 110 (d. h. nachfolgend ein Sender), einer Kommunikationsnetzwerksinfrastruktur 130 (wie z. B. das Internet), und einer Client-Einrichtung 140 (d. h. nachstehend einem Empfänger).
  • Die beispielhafte Lochfüllungswiederholungsmethode wiederholt basierend auf Sequenznummern der Pakete. Eine Sequenznummer ist eine Zahl, die sich für jedes gesendete Paket um 1 erhöht. Diese Nummern verwendend kann ein Empfänger ein oder mehrere vermisste Datenpakete (d. h. Löcher) erkennen. Die beispielhafte Lochfüllungswiederholungsmethode verwendet eher UDP als TCP. Sie kann entweder unicast oder multicast sein.
  • Gruppe 120 repräsentiert ein Beispiel einer Gruppe an Paketen, die der Sender 110 über das Netzwerk 130 sendet. Sie mag einen Offset 122 haben, der hilft, die bestimmte Gruppe zu identifizieren. Jedes Datenpaket ist individuell und sequentiell nummeriert. In diesem Beispiel sind sie mit 1 bis 13 nummeriert.
  • Der Sender 110 sendet dieses Fenster an Paketen an den Empfänger 140, ein Paket nach dem anderen. Gruppe 150 repräsentiert ein Beispiel dessen, was der Empfänger 140 in einem Zeitstück, während der Kommunikation mit dem Sender empfangen haben mag.
  • Während der Empfänger 140 die nummerierten Datenpakete empfängt, speichert er sie in der Reihenfolge ihrer sequentiellen Nummerierung zwischen. Sie können ungeordnet oder überhaupt nicht ankommen, aber wenn sie ankommen, platziert der Empfänger sie an ihren richtigen Ort in Empfangsgruppe 150. Eine Möglichkeit, den richtigen Ort festzulegen, ist vorzuschreiben, dass alle Datenpakete konstanter Größe sind. Dies ist eine Möglichkeit, dass ein Loch erkannt werden kann und seine Ränder einfach bestimmt werden können. Andere Ansätze können Verwendung finden, um die Ränder von Löchern zu definieren.
  • Wenn der Empfänger 140 ein Datenpaket empfängt, das eine Sequenznummer außer der Reihe aufweist, bedeutet dies, dass der Empfänger ein dazwischen liegendes nummeriertes Datenpaket verpasst hat. Diese fehlenden Pakete oder Gruppierungen von Paketen werden „Löcher" genannt. Die Ränder eines Loches werden durch das Vorhandensein von empfangenen Paketen, die das Loch umgeben, definiert.
  • Die Beispielempfangsgruppe 150 hat drei Löcher. Loch 152 repräsentiert fehlende Pakete Nr. 5, 6 und 7. Loch 154 repräsentiert fehlendes Paket Nr. 10. Loch 156 repräsentiert fehlendes Paket 12.
  • Wenn der Empfänger ein neues Loch erkennt, fügt er dieses Loch der Tabelle aktiver Löcher hinzu. Jeder Eintrag in der Tabelle hat eine definierte Wiederholungszeit – die ein konfigurierbarer Parameter ist.
  • Da UDP keine Reihenfolge gewährleistet, können Datenpakete außer der Reihe ankommen. Die fehlenden Pakete können immer noch unterwegs zum Empfänger sein. Dies ist dargestellt durch Unterwegs-Paket 124 – das fehlendes Paket Nr. 12 ist.
  • Deshalb ist es wünschenswert, vorübergehend abzuwarten, bevor ein Loch berichtet wird. Diese kurzzeitige Zeitspanne kann die Hold-off-(HO, Schonzeit)-Zeitspanne genannt werden. Derart vermeidet eine HO-Zeitspanne das Problem, dass der Empfänger die Wiedersendung für ein fehlendes Paket anfragt, wenn dieses fehlende Paket wahrscheinlich auf seinem Weg zum Empfänger ist. Dementsprechend wird die Wiederholungszeit anfangs auf eine definierte „Hold-off"-Zeitspanne gesetzt.
  • Wenn die Wiederholungszeit abläuft und das Loch immer noch vorhanden ist, sendet der Empfänger 140 ein „Lochbericht"-UDP-Paket an den Sender 110, das den Sender von dem einen oder mehr Löchern benachrichtigt. Dieser Bericht ist effektiv eine Negativ-Empfangsbestätigung (NACKs) der fehlenden Datenpakete.
  • Da der Lochbericht den Sender erreichen oder nicht erreichen mag, wird der Wiederholungstimer typischerweise auf einen Wiederberichtswert (RR: Re-report) gesetzt, der eine Zeitspanne ist bis ein Wiederbericht gemacht wird. Der RR-Wert kann ein anpassbarer Parameter sein, ist aber typischerweise ein Wert, der etwas größer als die beobachtete Rundreiselatenzzeit des Netzwerks ist. Die RR-Zeitspanne ist konstruiert, Zeit zu lassen für den Sender, um den Bericht zu empfangen, zu antworten und für den Empfänger, um die Antwort zu empfangen.
  • Der Wiederberichtswert ist typischerweise größer als der Hold-off-Wert, weil der Wiederberichtswert von der Größenordnung der Rundreiselatenzzeit des Netzwerks ist, wohingegen die Hold-off-Zeit typischerweise irgendein Bruchteil der Einwegslatenzzeit des Netzwerks ist.
  • Auf den Empfang eines Lochberichts sendet der Sender 110 erneut die UDP-Datenpakete, die durch den im Lochbericht enthaltenen Sequenznummernbereich bezeichnet sind. Wenn der Empfänger 140 für eine Weile keine Rückantwort empfängt – z. B. wenn die Wiederholungsanfrage oder die Rückantwort für die Wiederholungsanfrage verloren gegangen ist – sendet der Empfänger erneut eine Wiederholungsanfrage für die fehlenden Datenpakete, wenn der Wiederholungstimer abläuft.
  • Immer, wenn ein Paket ankommt, das teilweise ein Loch füllt, wird der Wiederholungstimer des verbleibenden Anteils des Loches (oder der resultierenden zwei verbleibenden Anteile des Loches) auf die Hold-off-Zeitspanne gesetzt.
  • Eine hierin beschriebene Ausführung für Streaming-Multimedia-Anwendungen über IP hat die folge
    • • Jedes Paket ist gleicher Größe.
    • • Der Garantiert-Zustellungskanal hat Daten, die über ihn auf einer laufenden Basis gesendet werden.
    • • Sie wird auf UDP aufsetzend betrieben.
    nden Merkmale:
  • Dies sind die Merkmale einer bestimmten Ausführung. Jedoch können andere Umsetzungen andere Merkmale besitzen. Z. B. können andere Ausführungen über andere Datagramm-Zustellungsprotokolle als UDP laufen.
  • Aktivlochtabelle
  • Wenn der Empfänger 140 ein neues Loch erkennt, fügt er das Loch der Tabelle aktiver Löcher hinzu. Jeder Eintrag in dieser Tabelle hat eine dynamisch kalkulierte Wiederholungszeit (RT: retry time). Diese Tabelle wird im Speicher des Empfängers gespeichert.
  • Da Datenpakete außer der Reihe ankommen können, ist es wünschenswert, für einen Moment abzuwarten, bevor ein Loch berichtet wird. Deshalb wird die Wiederholungszeit anfangs auf eine definierte Hold-off-(HO)-Zeitspanne gesetzt, um das Problem zu vermeiden, dass der Empfänger ein Wiedersenden für ein fehlendes Paket anfragt, wenn das fehlende Paket noch unterwegs zum Empfänger sein kann.
  • Die Wiederberichtszeit (RR: re-report) und die anfängliche „Hold-off"-(HO)-Zeitspanne sind dynamisch, basierend auf vielen Faktoren wie z. B. dem beobachteten Verhalten des Netzwerks, anpassbar.
  • Die Hold-off-Zeitspanne wird typischerweise auf einen Wert gesetzt, der einen großen Prozentsatz der beobachteten Verzögerungen zwischen Paketen, wenn die Pakete in der falschen Reihenfolge sind, umspannt. Mit anderen Worten, wenn A, B-Datenpakete sind, in dieser Reihenfolge, nicht notwendigerweise angrenzend und sie werden als B, A ankommend festgestellt (mit möglicherweise dazwischenkommenden Paketen), ist die Verzögerung A–B der Wert, der typischerweise durch die Hold-off-Zeitspanne umfasst wird. Jedoch sollte die A-B-Verzögerung nur dann festgestellt werden, wenn A nicht NACKt wurde, weil andernfalls das A nach B das Resultat einer Wiederholung sein kann.
  • Alternativ kann die HO-Zeitspanne auf die maximale Einwegslatenzzeit durch das Netzwerk minus der minimalen Einwegslatenzzeit durch das Netzwerk zuzüglich irgendeiner kleinen Anpassung (z. B. einem Delta) gesetzt werden.
  • Da der Lochbericht den Sender erreichen oder nicht erreichen mag, wartet der Empfänger für eine kurze Zeit (z. B. den RR-Wert) auf ein Rückantworten des Senders, bevor er den Bericht erneut sendet.
  • Nachstehend ist ein Beispiel einer „Aktivlochtabelle", die der Empfänger 140 erstellen kann. Sie führt Einträge für die aktiven Löcher (beruhend auf Empfangsgruppe 150 der 1), ihre aktuelle Wiederholungszeit und ihre Ablaufzeit.
    Löcher Wiederholungszeit Ablaufzeit
    5-7 +120 +500
    10-10 +10 +700
    12-12 +10 +730
  • Beispielhafte Aktivlochtabelle
  • Die Zeitwerte in obiger Tabelle sind in Millisekunden und nur als veranschaulichendes Beispiel gegeben. Eine typische Hold-off-(HO)-Zeitspanne kann in der Größenordnung von 10ms und eine typische Wiederberichts-(RR)-Zeitspanne kann in der Größenordnung von 100ms sein.
  • Ferner sind die in dieser Tabelle aufgeführten Zeiten relativ zur gegenwärtigen Zeit, was nur zur Veranschaulichung gemacht ist. In der Wirklichkeit mag eine Ausführung einen absoluten Zeitwert spezifizieren (eher als relativ).
  • Das nachführende führt einige der Bedingungen auf, unter denen RT für einen Eintrag der Aktivlochtabelle dynamisch berechnet wird, wenn die beispielhafte Lochfüllungswiederholungsmethode verwendet wird:
    • • Wenn ein Eintrag in die Lochtabelle erzeugt wird, wird die anfängliche RT auf jetzt + HO gesetzt.
    • • Wenn ein Bericht für ein bestimmtes Loch gesendet wurde, wird die RT zurückgesetzt auf jetzt + RR.
    • • Wenn ein Datenpaket ein Loch teilweise füllt oder aufteilt, wird die RT für das resultierende Loch oder die resultierenden Löcher auf jetzt + HO gesetzt.
  • Mit der beispielhaften Lochfüllungswiederholungsmethode werden die Einträge in der Tabelle basierend auf der RT sortiert aufbewahrt. Auf diese Weise ist der frühestens zu wiederholende Eintrag immer der erste.
  • Lochsplittung
  • Wenn der Empfänger 140 ein Datenpaket empfängt, das ein Loch nur teilweise füllt, kann das Loch geteilt oder verkürzt werden. Z. B. wenn das fehlende Datenpaket Nr. 5 der Empfangsgruppe 150 aus 1 am Empfänger 140 ankommt, wird das Loch 152 verkürzt. Der neue Bereich für Loch 152 ist Pakete 6 bis 7. Wenn z. B. fehlendes Datenpaket Nr. 6 der Empfangsgruppe 150 ankommt, wird das Loch 152 effektiv in zwei Löcher geteilt: wo Datenpaket Nr. 5 sein würde und wo Datenpaket Nr. 7 sein würde.
  • Wenn ein neu angekommenes Datenpaket in eine Mitte eines Loches füllt, teilt es effektiv das Loch in zwei Löcher auf. Die zwei neuen Löcher erhalten eine Wiederholungszeit (RT) von jetzt + HO, da HO gerade genug ist, um üblicherweise die Erzeugung eines Lochberichtes aufgrund normaler Umstellung von UDP-Datenpaketen, die geordnet versendet wurden, zu verhindern, und die Datenpakete zum Auffüllen eines Loches werden in Reihenfolge gesendet, weil das gesamte Loch ursprünglich als ein einzelnes Loch berichtet wurde.
  • Ablaufzeit
  • Jedes Datenpaket hat einen Ablaufzeitstempel (ETS: expiration time stamp). Da die Daten in dem Datenpaket zeitsensitiv sind, gibt es eine Zeit, zu der seine Daten irrelevant sind. D. h., dass es eine Zeit gibt, wo es nicht mehr darauf ankommt, ob der Empfänger tatsächlich das Datenpaket empfängt. Diese Zeit ist seine Ablaufzeit.
  • Die mit jedem Eintrag in der Aktivlochtabelle verknüpfte Ablaufzeit ist die ETS des Paketes, das die Bereichsgrenze des zugeordneten Loches definiert. Z. B. ist ETS für Paket Nr. 11 der Empfangsgruppe 150 aus 1 der in die Aktivlochtabelle für Loch 154 eingetragene Wert (für fehlendes Datenpaket Nr. 10).
  • Wenn für einen Eintrag in der Aktivlochtabelle RT > ETS ist, dann werden die fehlenden Datenpakete als irrelevant erachtet. Als solche wird der Empfänger 140 nicht länger versuchen, diese(s) fehlende(n) Paket(e) zum Auffüllen des Loches zu erhalten. Dieser Eintrag wird in der Tabelle entfernt und eine Unterbrechung in dem Datenstrom wird vermerkt.
  • Übertragungspause
  • Unter bestimmten Bedingungen ist es möglich, dass der Empfänger fehlerhaft ein Loch nicht erkennt, das unmittelbar vor einer Übertragungspause auftritt. Da nachfolgende Datenpakete noch nicht am Empfänger angekommen sind (da sie noch nicht gesendet wurden), erkennt der Empfänger nicht das Vorhandensein eines Loches. Das Ankommen eines Datenpakets ist fehlgeschlagen, aber der Empfänger weiß noch nichts davon. Deshalb erkennt der Empfänger das Vorhandensein des Loches nicht, bevor die vollen Übertragungen wiederaufgenommen werden.
  • Jedoch kann diese Situation abgeschwächt werden durch das Senden gelegentlicher Statuspakete, insbesondere, wenn es zu einer Pause in den Übertragungen kommt. Ein Statuspaket informiert den Empfänger, was das unmittelbar vorhergehende Datenpaket hätte sein sollen und/oder was das nächste sein wird. Unter der Annahme, dass ein Loch vorhanden ist, kann der Empfänger es nun erkennen und entsprechend handeln.
  • Funktion der beispielhaften Lochfüllungswiederholungsmethode am Empfänger
  • 2 zeigt eine methodologische Ausführung der beispielhaften Lochfüllungswiederholungsmethode. Diese methodologische Ausführung kann in Software, Hardware oder einer Kombination hiervon umgesetzt werden.
  • Bei 210 der 2 empfängt der Empfänger 140 der 1 eine Folge nummerierter Datenpakete einer Gruppe an Paketen.
  • Bei 212 empfängt er in einem Empfangszwischenspeicher eine Sammlung von Datenpaketen (solch Gruppe 150 aus 1): Er ordnet jedes nummerierte Datenpaket in der Reihenfolge ihrer Nummerierung an. Er benutzt einen Offset (z. B. eine definierte konstante Datenpaketgröße) zur Bestimmung, wo jedes Datenpaket in dem Zwischenspeicher angeordnet wird. Während er dies tut, lässt er Löcher für fehlende nummerierte Pakete übrig. Z. B. ist Loch 152 in 1 für fehlende Pakete Nr. 5, 6 und 7.
  • Bei 240 füllt der Empfänger einen neuen Eintrag in die Aktivlochtabelle aus. Er trägt jedes neue Loch als einen neuen Eintrag in die Tabelle ein. Für jeden neuen Eintrag trägt er die anfängliche Wiederholungszeit (RT) für die neuen Einträge als jetzt + Hold-off-(HO)-Zeitspanne ein. Für jeden neuen Eintrag trägt der Empfänger auch den Ablaufzeitstempel (ETS) für das empfangene Paket nachfolgend und angrenzend des Loches dieses Eintrags ein.
  • Bei 216, wenn die gegenwärtige Zeit mit der RT für einen Eintrag in der Tabelle übereinstimmt, erzeugt und sendet der Empfänger 140 ein „Lochbericht"-Paket an den Sender 110, der den Sender von dem einen oder den mehreren Löchern in Kenntnis setzt.
  • Bei 218, nach Versenden des Lochberichts, aktualisiert der Empfänger die RT für die berichteten Einträge. Er setzt die RT auf jetzt + eine Wiederberichts-(RR)-Zeitspanne.
  • Bei 220, wenn RT > ETS für einen gegebenen Eintrag, dann entfernt er diesen Eintrag von der Tabelle und vermerkt eine Unterbrechung in dem Datenstrom. Das bedeutet, dass ein Loch abgelaufen ist und seine Entfernung von der Tabelle bedeutet, dass der Empfänger nicht länger versuchen wird, es abzufragen.
  • Bei 222, wenn er ein fehlendes Datenpaket empfängt, füllt er das Loch (entweder teilweise oder vollständig). Wenn das fehlende Datenpaket das Loch vollständig ausfüllt, dann wird sein entsprechender Eintrag in der Tabelle entfernt. Wenn das fehlende Datenpaket es nur teilweise ausfüllt, dann passt er die Größe des Loches neu an. Wenn das fehlende Datenpaket das Loch in zwei Löcher teilt, dann passt er die Größe eines Loches neu an und erzeugt einen neuen Eintrag für das neu erschaffene Loch, wobei sowohl das kleinere ursprüngliche Loch und das neu erschaffene Loch eine RT von jetzt + HO haben.
  • Dieser Ablauf setzt sich fort, während Pakete der Empfangsgruppen empfangen werden.
  • Funktion der beispielhaften Lochfüllungswiederholungsmethode beim Sender
  • 3 zeigt eine methodologische Ausführung der beispielhaften Lochfüllungswiederholungsmethode. Die methodologische Ausführung kann durch Software, Hardware oder einer Kombination hiervon umgesetzt werden.
  • Bei 310 in 3 sendet der Sender 110 aus 1 sequentiell durchgezählte Datenpakete an einen Empfänger 140 und speichert diese Datenpakete in einem Verlaufszwischenspeicher. Der Sender unterhält diesen Verlaufszwischenspeicher, damit er Datenpakete erneut senden kann, wenn er dazu aufgefordert wird. Darüber hinaus weist der Sender dem Datenpaket einen ETS zu.
  • Bei 312 empfängt der Sender einen „Lochbericht" vom Empfänger, der bezeichnet, welche Datenpakete nicht empfangen wurden.
  • Bei 314, in Erwiderung auf diesen Bericht, ruft der Sender die bezeichneten Datenpakete aus seinem Verlaufszwischenspeicher ab und sendet sie erneut an den Empfänger. Wenn der Sender eine Aufforderung erhält, ein Paket erneut zu senden, das nicht mehr in dem Verlaufszwischenspeicher ist, so ignoriert er die Aufforderung.
  • Beispielhafte Umgebung
  • 4 stellt eine beispielhafte Umgebung 400, in welcher die hierin beschriebenen Techniken, Systeme und anderen Aspekte realisiert werden können (teilweise oder vollständig). Beispielhafte Umgebung 400 ist ein Fernsehunterhaltungssystem, das die Verbreitung von Multimedia ermöglicht. Ein typisches Digital-Video-Broadcast-(DVB: digital video broadcast, digitaler Videorundfunk)-Netzwerk ist ein Beispiel für solch eine Umgebung.
  • Die Umgebung 400 beinhaltet einen oder mehrere Multimediainhalteanbieter 402, ein Inhalteverbreitungssystem 406 und eine oder mehrere Vorführeinrichtungen 408(1), 408(2), ..., 408(N), die über ein Rundfunkübertragungsnetzwerk 410 an das Inhalteverbreitungssystem 406 angebunden sind.
  • Multimediainhalteanbieter 402 beinhaltet einen Inhalteserver 412 und gespeicherte Inhalte 414, wie z. B. Filme, Fernsehsendungen, Werbesendungen, Musik und ähnliche Audio- und/oder Videoinhalte. Inhalteserver 412 steuert die Verbreitung der gespeicherten Inhalte 414 vom Inhalteanbieter 402 an das Inhalteverbreitungssystem 406. Zusätzlich steuert Inhalteserver 402 die Verbreitung von Live-Inhalten (z. B. Inhalten, die nicht vorher gespeichert wurden, wie z. B. Live-Einspeisungen) und/oder Inhalten, die an anderen Stellen gespeichert sind, an das Inhalteverbreitungssystem 406. Inhalteverbreitungssystem 406 kann an ein Netzwerk 420 angebunden sein, wie z. B. ein Intranet oder das Internet. Das Inhalteverbreitungssystem 406 beinhaltet einen Rundfunksender 428 und einen oder mehrere Inhalteprozessoren 430. Rundfunksender 428 überträgt Signale, wie z. B. Kabelfernsehsignale über Rundfunknetzwerk 410.
  • Inhalteverbreitungssystem 406 ist charakteristisch für einen Head-End-Dienst, der Multimediainhalte an mannigfache Teilnehmer anbietet.
  • Rundfunknetzwerk 410 kann ein Kabelfernsehnetzwerk, RF-, Mikrowellen-, Satelliten-, und/oder Datennetzwerk wie z. B. das Internet beinhalten und kann ebenso verkabelte oder kabellose Medien unter Verwendung jedes Übertragungsformates oder Übertragungsprotokolls beinhalten. Zusätzlich kann Rundfunknetzwerk 410 jedweder Typus eines Netzwerks unter Verwendung jeder Art von Netzwerktopologie und jedweden Netzwerkkommunikationsprotokoils sein, und kann als eine Kombination aus zwei oder mehreren Netzwerken repräsentiert oder anderweitig realisiert sein.
  • Inhalteprozessor 430 verarbeitet die vom Inhalteanbieter 402 empfangenen Inhalte vor dem Versenden der Inhalte über Rundfunknetzwerk 410. Ein bestimmter Inhalteprozessor 430 kann die empfangenen Inhalte in ein Format kodieren oder verarbeiten, das von den mehreren Vorführeinrichtungen 408(1), 408(2), ..., 408(N), die an das Rundfunknetzwerk 410 angebunden sind, verstanden wird.
  • Vorführeinrichtungen 408 können auf viele Arten realisiert sein. Z. B. empfängt eine Vorführeinrichtung 408(1) Funkinhalte von einem satellitenbasierten Sender über eine Satelli tenschüssel 434. Vorführeinrichtung 408(1) wird auch als eine Set-Top-Box oder eine Satellitenempfangseinrichtung bezeichnet. Vorführeinrichtung 408(1) ist an einen Fernseher 436(1) zum Vorführen der durch die Vorführeinrichtung empfangenen Inhalte (z. B. Audiodaten und Videodaten), als auch an eine grafische Benutzerschnittstelle, angebunden. Eine bestimmte Vorführeinrichtung 408 kann an jedwede Anzahl an Fernsehern 436 und/oder ähnliche Einrichtungen, die zum Anzeigen oder anderweitigen Wiedergeben von Inhalten angewandt werden können, angebunden sein. Ebenso kann jedwede Anzahl an Vorführeinrichtungen 408 an einen einzelnen Fernseher 436 angebunden sein.
  • Vorführeinrichtung 408(2) ist auch zum Empfangen von Rundfunkinhalten vom Rundfunknetzwerk 410 und zum Anbieten der empfangenen Inhalte an zugeordneten Fernseher 436(2) angebunden. Vorführeinrichtung 408(N) ist ein Beispiel des Kombinationsfernsehers 438 mit integrierter Set-Top-Box 440. In diesem Beispiel sind die verschiedenen Komponenten und die Funktionalität der Set-Top-Box in dem Fernseher eingebaut, anstatt zwei getrennte Geräte zu verwenden. Die in den Fernseher eingearbeitete Set-Top-Box kann Rundfunksignale über eine Satellitenschüssel (ähnlich der Satellitenschüssel 434) und/oder über Rundfunknetzwerk 410 empfangen. In alternativen Ausführungen kann Vorführeinrichtung 406 Rundfunksignale über das Internet oder jedwedes andere Übertragungsmedium empfangen.
  • Die beispielhafte Umgebung 400 beinhaltet auch gespeicherte On-Demand-Inhalte 442, wie z. B. Video-on-Demand-(VOD)-Filminhalte. Die gespeicherten On-Demand-Inhalte können z. B. mit einer Vorführeinrichtung 408 über einen Bildschirmfilmguide betrachtet werden und ein Betrachter kann Anweisungen eingeben, dass ein bestimmter Film oder andere gespeicherte Inhalte an eine entsprechende Vorführeinrichtung 408 heruntergestreamt wird.
  • Bis jetzt wurde diese beispielhafte Umgebung 400 im Sinne einer Digital-Video-Broadcast-(DVB)-Umgebung beschrieben. Dies ist tatsächlich eine beispielhafte Umgebung. Jedoch kann die beispielhafte Lochfüllungswiederholungsmethode ohne der ganzen DVB-Umgebung selbst realisiert werden. Stattdessen kann sie durch eine Solo-Vorführeinrichtung, wie z. B. dargestellt durch Geräte 408(1), 408(2), ..., 408(N) realisiert werden.
  • Solo-(stand alone)-Vorführeinrichtungen 408(1), 408(2), ..., 408(N) greifen auf digitales Video von einem Speicherdatenträger 444, wie z. B. einer DVD-Disk zu. Sie beliefern die In halte von dem Datenträger an einen zugeordneten Fernseher 439. Beispiele solch einer Stand-Alone-Vorführeinrichtung beinhalten DVD-Abspielgeräte, einen privaten Videorecorder, etc.
  • Beispielhafte Vorführeinrichtung
  • 5 stellt beispielhafte Ausführung 500 einer Vorführeinrichtung 408, die als Stand-Alone-Einheit, die zu Fernseher 436 verbindet, gezeigt ist, dar. Vorführeinrichtung 408 kann in jedweder Anzahl an Ausführungsformen realisiert sein, einschließlich als eine Set-Top-Box, einen Satellitenempfänger, einen TV-Recorder mit einer Festplatte, eine Spielekonsole, Informationsvorrichtung, einem DVD-Abspielgerät, privaten Videorecorder, Arbeitsplatzrechner, Media Center (Medienzentrum), usw.
  • Vorführeinrichtung 408 beinhaltet einen drahtlosen Empfangsanschluss 502, wie z. B. einen Infrarot-(IR)- oder Bluetooth-Drahtlosanschluss, zum Empfangen drahtloser Kommunikation von einem Fernbedienungsgerät 504, einem Handeingabegerät 506 oder jedwedem anderen drahtlosen Gerät, wie z. B. einer drahtlosen Tastatur. Handeingabegerät 506 kann ein Personal Digital Assistant (PDA), Handheld Computer, drahtloses Telefon oder ähnliches sein. Zusätzlich ist eine drahtlose Tastatur 508 zum Kommunizieren mit der Vorführeinrichtung 408 verbunden. In alternativen Ausführungsformen können Fernbedienungsgerät 504, Handgerät 506 und/oder Tastatur 508 eine RF-Kommunikationsverbindung oder einen anderen Übertragungsmodus zum Kommunizieren mit Vorführeinrichtung 408 verwenden.
  • Vorführeinrichtung 408 kann ein Speichermedienlesegerät 509 zum Lesen von Inhaltespeichermedien, wie z. B. DVD-Disks, aufweisen. Eine Stand-Alone- oder Nicht-Stand-Alone-Vorführeinrichtung 408 kann das Speicherlesegerät 509 einschließen.
  • Vorführeinrichtung 408 kann ein oder mehrere Rundfunksignale 510 von einer oder mehreren Ausstrahlungsquellen, wie z. B. von einem Satellit oder von einem Rundfunknetzwerk empfangen. Vorführeinrichtung 408 beinhaltet Hardware und/oder Software zum Empfangen und Dekodieren des Rundfunksignals 510, wie z. B. eines NTSC-, PAL-, SECAM- oder eines anderen TV-Systemvideosignals.
  • Vorführeinrichtung 408 beinhaltet auch Hardware und/oder Software zum Bereitstellen einer graphischen Benutzeroberfläche an den Benutzer, durch welche der Benutzer z. B. auf ver schiedenartige Netzwerkdienste zugreifen, die Vorführeinrichtung 408 konfigurieren und andere Funktionen ausführen kann.
  • Vorführeinrichtung 408 kann zur Kommunikation mit anderen Einrichtungen über eine oder mehrere Verbindungen, einschließlich einer konventionellen Telefonverbindung 512, einer ISDN-Verbindung 514, einer Kabelverbindung 516, einer Ethernet-Verbindung 518, einer DSL-Verbindung 520 und ähnlichem befähigt sein. Vorführeinrichtung 408 kann jedwede eine oder mehrere der verschiedenen Kommunikationsverbindungen 512 bis 520 zu einem bestimmten Augenblick zum Kommunizieren mit jedweder Anzahl anderer Geräte verwenden.
  • Vorführeinrichtung 408 erzeugt Videosignal(e) 520 und Audiosignal(e) 522, die beide an Fernseher 436 übertragen werden. Die Videosignale und Audiosignale können von Vorführeinrichtung 408 an Fernseher 436 über eine RF-(Funkfrequenz)-Verbindung, S-Videoverbindung, Composite-Video-Verbindung (Komponentenvideoverbindung) oder andere Kommunikationsverbindung übertragen werden.
  • Obwohl nicht in 5 gezeigt, kann die Vorführeinrichtung 408 ein oder mehrere Lichter oder andere Indikatoren beinhalten, die den momentanen Status des Gerätes anzeigen. Zusätzlich kann die Vorführeinrichtung einen oder mehrere Schaltknöpfe, Schalter oder andere wählbare Steuerelemente zum Steuern der Funktion des Gerätes einschließen.
  • Beispielhaftes Rechensystem und Umgebung
  • 6 stellt ein Beispiel für eine geeignete Rechenumgebung 600 dar, innerhalb welcher eine beispielhafte Lochfüllungswiederholungsmethode, wie hierin beschrieben realisiert werden kann (entweder vollständig oder teilweise). Die Rechenumgebung 600 kann in den hierin beschriebenen Computer- und Netzwerkarchitekturen Verwendung finden.
  • Die beispielhafte Rechenumgebung 600 ist nur ein Beispiel einer Rechenumgebung und nicht zur Andeutung irgendeiner Einschränkung in Bezug auf den Verwendungsbereich oder die Funktionalität der Computer- und Netzwerkarchitekturen betreffend bestimmt. Auch soll die Rechenumgebung 600 nicht als irgendeine Abhängigkeit oder ein Erfordernis in Bezug auf irgendeine oder eine Kombination an Komponenten, die in der beispielhaften Rechenumgebung 600 dargestellt sind, habend verstanden werden.
  • Die beispielhafte Lochfüllungswiederholungsmethode kann mittels zahlreicher anderer Mehrzweck- oder Spezialzweckrechensystemumgebungen oder -Konfigurationen ausgeführt werden. Beispiele wohlbekannter Rechensysteme, Umgebungen, und/oder Konfigurationen, die zur Verwendung geeignet sein können, schließen ein, sind aber nicht beschränkt auf Arbeitsplatzrechner, Serverrechner, Thin-Clients, Thick-Clients, Hand-Held- oder Laptop-Geräte, Multiprozessorsysteme, mikroprozessorbasierte Systeme, Set-Top-Boxen, programmierbare Verbraucherelektronik, Netzwerk-PCs, Minicomputer, Großrechner (mainframe computers), verteilte Rechenumgebungen, die irgendeines der obigen Systeme oder Geräte einschließen, und Ähnliches.
  • Die beispielhafte Lochfüllungswiederholungsmethode kann im allgemeinen Zusammenhang computerausführbarer Instruktionen, wie z. B. von Programmmodulen, die durch einen Computer ausgeführt werden, beschrieben werden. Allgemein beinhalten Programmmodule Routinen, Programme, Objekte, Komponenten, Datenstrukturen etc., die bestimmte Aufgaben erfüllen oder bestimmte abstrakte Datentypen implementieren. Die beispielhafte Lochfüllungswiederholungsmethode kann auch in verteilten Rechenumgebungen ausgeübt werden, wo Aufgaben durch Fernverarbeitungsgeräte, die über ein Kommunikationsnetzwerk verbunden sind, ausgeführt werden. In einer verteilten Rechenumgebung können Programmmodule sowohl in lokalen als auch fernen Computerspeichermedien inkl. Datenspeicherspeichergeräten befindlich sein.
  • Die Rechenumgebung 600 beinhaltet eine Mehrzweckrecheneinrichtung in der Form eines Computer 602. Die Komponenten des Computers 602 können, ohne darauf beschränkt zu sein, einen oder mehrere Prozessoren oder Verarbeitungseinheiten 604, einen Systemspeicher 606 und einen Systembus 608, der verschiedene Systemkomponenten verbindet, einschließlich des Prozessors 604 an den Systemspeicher 606, beinhalten.
  • Ein Systembus kann als ein oder mehrere irgendeiner der verschiedenen Typen von Busstrukturen ausgeführt sein, einschließlich eines Speicherbusses oder Speichercontrollers, eines Peripheriebusses, eines beschleunigten Grafikanschlusses (accelerated graphics Port), oder eines lokalen Busses, der irgendeine der Vielfalt an Busarchitekturen verwendet. Als Beispiel, können solche Architekturen einen Card-Bus, Personal Computer Memory Card International Association (PCMCIA), beschleunigten Grafikanschluss (AGP: accelerated graphics Port), Small Computer System Interface (SCSI), Universal Serial Bus (USB), IEEE 1394, einen Video-Electronics-Standards-Association-(VESA)-Lokal-Bus und einen Peripheriekomponentenzusammenschaltungs-(PCI: periphery component interconnects)-Bus, der auch als Mezzanine-Bus bekannt ist, beinhalten.
  • Computer 602 beinhaltet typischerweise eine Vielfalt an computerlesbaren Datenträgern. Solche Datenträger können jeder verfügbare Datenträger, auf den durch Computer 602 zugegriffen werden kann, sein und beinhalten sowohl flüchtige als auch permanente Datenträger, austauschbare und nicht austauschbare Datenträger.
  • Der Systemspeicher 606 schließt computerlesbare Datenträger in der Form flüchtigen Speichers, wie z. B. Speicher mit direktem Zugriff (RAM: random access memory) 610, und/oder permanenten Speicher, wie z. B. Festwertspeicher (ROM: read only memory) 612 ein. Ein Haupteingabe/-ausgabesystem (BIOS: basic input/output system) 614, das die Grundroutinen, die helfen, Information zwischen Elementen innerhalb des Computers 602 zu übergeben, beinhaltet, wie z. B. während der Inbetriebnahme, ist im ROM 612 gespeichert. RAM 610 enthält typischerweise Daten und/oder Programmmodule, auf die durch die Verarbeitungseinheit 604 sofort zugegriffen werden kann und/oder die gegenwärtig von der Verarbeitungseinheit 604 betrieben werden.
  • Computer 602 kann ferner auch andere austauschbare/nicht austauschbare, flüchtige/permanente Computerspeichermedien beinhalten. Als Beispiel stellt 6 ein Festplattenlaufwerk 616 zum Lesen von und Schreiben auf einem nichtaustauschbaren permanenten magnetischen Datenträger (nicht gezeigt), ein magnetisches Disketten-Laufwerk 618 zum Lesen von und Schreiben auf eine austauschbare permanente magnetische Diskette 620 (z. B. eine „Floppy Disk"), und ein optisches Diskettenlaufwerk 622 zum Lesen von und/oder Schreiben auf eine austauschbare, permanente optische Diskette 624, wie Z. B. eine CD-ROM, DVD-ROM oder andere optische Datenträger dar. Das Festplattenlaufwerk 616, das magnetische Laufwerksystem 618 und das optische Diskettenlaufwerk 622 sind jeweils über eine oder mehrere Datenträgerschnittstellen 626 an den Systembus 608 angeschlossen. Wahlweise kann das Festplattenlaufwerk 616, magnetische Diskettenlaufwerk 618 und optische Diskettenlaufwerk 622 durch eine oder mehrere Schnittstellen (nicht gezeigt) an den Systembus 608 angeschlossen sein.
  • Die Diskettenlaufwerke und ihre zugehörigen computerlesbaren Datenträger bieten permanente Speicherung computerlesbarer Instruktionen, Datenstrukturen, Programmmodule und anderer Daten für Computer 602. Obwohl das Beispiel eine Festplatte 616, eine austausch bare magnetische Diskette 620 und eine austauschbare optische Diskette 624 darstellt, ist zu verstehen, dass andere Typen computerlesbarer Datenträger die Daten, auf die durch einen Computer zugegriffen werden kann, speichern können, wie z. B. magnetische Kassetten oder andere magnetische Speichereinrichtungen, Flash-Speicherkarten, CD-ROM, Digital-Versstile-Discs (DVD) oder andere optische Speicher, Speicher mit direktem Zugriff (RAM: Random Access Memories), Festwertspeicher (ROM: Read Only Memories), elektronisch löschbarer programmierbarer Festwertspeicher (EEPROM: Electrically Erasable Programmable Read Only Memory), und Ähnliches auch verwendet werden können, um das beispielhafte Rechensystem und Umgebung zu realisieren.
  • Jede Anzahl an Programmmodulen kann auf der Festplatte 616, der magnetischen Diskette 620, optischen Diskette 624, ROM 612 und/oder RAM 610 gespeichert werden, inklusive, als Beispiel, ein Betriebssystem 626, ein oder mehrere Anwendungsprogramme 628, andere Programmmodule 630 und Programmdaten 632.
  • Ein Anwender kann über Eingabegeräte, wie z. B. eine Tastatur 634 und ein Zeigegerät 636 (z. B. eine „Maus") Anweisungen und Informationen an den Computer 602 eingeben. Andere Eingabegeräte 638 (nicht im Speziellen gezeigt) können ein Mikrofon, einen Joystick, Game-Pad, Satellitenschüssel, seriellen Anschluss, Scanner, und/oder Ähnliches umfassen. Diese und andere Eingabegeräte sind mit der Bearbeitungseinheit 604 über Eingabe-/Ausgabeschnittstellen 640 verbunden, die an den Systembus 608 angebunden sind, können aber durch andere Schnittstellen und Busstrukturen, wie z. B. einen Parallelanschluss, Spieleanschluss (Game Port), oder einen Universal Serial Bus (USB) verbunden sein.
  • Ein Monitor 642 oder anderer Anzeigeeinheitstypus kann auch über eine Schnittstelle, wie z. B. einen Videoadapter 644 an den Systembus 608 angeschlossen sein. Zusätzlich zum Monitor 642 können andere Ausgabeperipheriegeräte Komponenten, wie z. B. Lautsprecher (nicht gezeigt) und einen Drucker 646, umfassen, die über die Eingabe-/Ausgabeschnittstellen 640 an Computer 602 angeschlossen sein können.
  • Computer 602 kann in einer vernetzten Umgebung unter Verwendung logischer Verbindungen zu einem oder mehreren Ferncomputern, wie z. B. Fernrecheneinrichtung 648 arbeiten. Als Beispiel kann die Fernrecheneinrichtung 648 ein Arbeitsplatzcomputer, tragbarer Computer, ein Server, ein Router, ein Netzwerkcomputer, ein Peer-Gerät oder anderer gebräuchlicher Netzwerkknotenpunkt (network node) oder Ähnliches sein. Die Fernrechenein richtung 648 ist dargestellt als ein tragbarer Computer, der viele oder alle der Elemente und Merkmale, die hierin in Bezug auf Computer 602 beschrieben sind, umfasst.
  • Logische Verbindungen zwischen Computer 602 und dem Ferncomputer 648 sind anschaulich dargestellt als ein lokales Netzwerk (LAN: Local Area Network) 650 und ein allgemeines Fernnetzwerk (WAN: Wide Area Netzwork) 652. Solche Netzwerkbetriebsumgebungen sind alltäglich in Büros, unternehmensweiten Computernetzwerken, Intranets und dem Internet.
  • Wenn er in einer LAN-Netzwerkbetriebsumgebung implementiert ist, ist der Computer 602 an ein lokales Netzwerk 650 über eine Netzwerkschnittstelle oder Adapter 654 verbunden. Wenn er in einer WAN-Netzwerkbetriebsumgebung implementiert ist, beinhaltet der Computer 602 typischerweise ein Modem 656 oder andere Mittel zur Errichtung von Kommunikationen über das Weitnetzwerk 652. Das Modem 656, das relativ zu Computer 602 intern oder extern sein kann, kann über die Eingabe-/Ausgabeschnittstellen 640 an andere geeignete Mechanismen an den Systembus 608 angeschlossen sein. Es ist zu verstehen, dass die dargestellten Netzwerkverbindungen beispielhaft sind und dass andere Mittel zur Errichtung von Kommunikationsverbindung(en) zwischen den Computern 602 und 648 Verwendung finden können.
  • In einer vernetzten Umgebung wie z. B. der mit Rechenumgebung 600 dargestellten Umgebung können Programmmodule, die bezüglich zum Computer 602 geschildert sind, oder Teile davon in einem Fernspeicherspeichergerät gespeichert sein. Als Beispiel residieren Fernanwendungsprogramme 648 in einem Speichergerät des Ferncomputers 648. Zum Zwecke der Veranschaulichung sind Anwendungsprogramme und andere ausführbare Programmkomponenten, wie z. B. das Betriebssystem, hierin als diskrete Blöcke dargestellt, obwohl erkannt wird, dass solche Programme und Komponenten zu verschiedenen Zeiten in unterschiedlichen Speicherungskomponenten der Recheneinrichtung 602 residieren und durch den/die Datenprozessor(en) des Computers ausgeführt werden.
  • Computerausführbare Instruktionen
  • Eine Ausführung einer beispielhaften Lochfüllungswiederholungsmethode kann im allgemeinen Zusammenhang von computerausführbaren Instruktionen, wie z. B. Programmmodulen, die durch einen oder mehrere Computer oder andere Geräte ausgeführt werden, beschrieben werden. Allgemein beinhalten Programmmodule Routinen, Programme, Objekte, Komponenten, Datenstrukturen etc., die bestimmte Aufgaben verrichten oder bestimmte abstrakte Datentypen implementieren. Typischerweise kann die Funktionalität der Programmmodule in verschiedenen Ausführungsformen wie gewünscht kombiniert oder verteilt werden.
  • Beispielhafte Betriebsumgebung
  • 6 stellt ein Beispiel einer geeigneten Betriebsumgebung 600, in der eine beispielhafte Lochfüllungswiederholungsmethode realisiert werden kann, dar. Insbesondere kann die beispielhafte Lochfüllungswiederholungsmethode(n), die hierin beschrieben sind (ganz oder zum Teil) durch jedwedes Programmmodul 628 bis 630 und/oder Betriebssystem 626 in 6 oder eines Anteils davon ausgeführt werden.
  • Die Betriebsumgebung ist nur ein Beispiel einer geeigneten Betriebsumgebung und ist nicht zur Andeutung einer Beschränkung bezüglich des Bereichs oder der Benutzung der Funktionalität der beispielhaften Lochfüllungswiederholungsmethode(n), die hierin beschrieben sind, bestimmt. Andere wohlbekannte Rechensysteme, Umgebungen und/oder Konfigurationen, die zur Verwendung geeignet sind, beinhalten, ohne hierauf beschränkt zu sein, Arbeitsplatzrechner (PC: Personal Computer), Servercomputer, Handheld- oder Laptopgeräte, Multiprozessorsysteme, mikroprozessorbasierte Systeme, programmierbare Verbraucherelektronik, drahtlose Telefone und Ausstattungen, Mehrzweck- und Sonderzweckvorrichtungen, anwendungsspezifische integrierte Schaltkreise (ASICs: Application-Specific Integrated Circuits), Netzwerk-PCs, Minicomputer, Großrechner (Mainframe Computers), verteilte Rechenumgebungen, die irgendwelche der obigen Systeme oder Geräte beinhalten, und Ähnliches.
  • Computerlesbare Datenträger
  • Eine Ausführung einer beispielhaften Lochfüllungswiederholungsmethode kann auf irgendeiner Form von computerlesbarem Datenträger gespeichert sein oder über irgendeine Form von computerlesbarem Datenträger übertragen werden. Computerlesbare Datenträger können jedwede verfügbare Datenträger, auf die ein Computer zugreifen kann, sein. Als Beispiel können computerlesbare Datenträger, ohne hierauf beschränkt zu sein, „Computerspeichermedien" und „Kommunikationsmedien" umfassen.
  • „Computerspeichermedien" umfassen flüchtige und permanente, austauschbare und nicht austauschbare Datenträger, die in jedweder Methode oder Technologie implementiert sind, zum Speichern von Informationen, wie z. B. computerlesbaren Instruktionen, Datenstrukturen, Programmmodulen oder anderen Daten. Computerspeichermedien umfassen ohne hierauf limitiert zu sein, RAM, ROM, EEPROM, Flash-Speicher oder andere Speichertechnologie, CD-ROM, Digital-Versstile-Discs (DVD) oder andere optische Speicher, magnetische Kassetten, magnetische Bänder, magnetische Diskettenspeicher oder andere magnetische Speichergeräte, oder jedwedes andere Medium, das zum Speichern der gewünschten Information verwendet werden kann und auf welches durch einen Computer zugegriffen werden kann.
  • „Kommunikationsmedien" (communication media) verkörpern typischerweise computerlesbare Instruktionen, Datenstrukturen, Programmmodule oder andere Daten in einem modulierten Datensignal, wie z. B. einer Trägerwelle oder anderem Transportmechanismus. Kommunikationsmedien beinhalten ferner irgendwelche Informationszustellungsmedien.
  • Der Begriff „moduliertes Datensignal" bezeichnet ein Signal, das eine oder mehrere seiner Eigenschaften in solch einer Weise eingerichtet oder geändert hat, um damit Information in dem Signal zu kodieren. Als Beispiel können Kommunikationsmedien, ohne hierauf beschränkt zu sein, verdrahtete Medien, wie z. B. ein festverdrahtetes Netzwerk oder direkt verkabelte Verbindungen und drahtlose Medien, wie z. B. akustische, RF-, Infrarot- und andere drahtlose Medien umfassen. Kombinationen irgendwelcher der Obigen sind innerhalb des Bereichs der computerlesbaren Datenträger beinhaltet.
  • Schlussfolgerung
  • Obwohl die Erfindung in einer Sprache geschrieben wurde, die eigentümlich für die strukturellen Merkmale und/oder methodologischen Schritte ist, versteht es sich, dass die in den angefügten Ansprüchen definierte Erfindung nicht notwendigerweise auf die beschriebenen speziellen Merkmale oder Schritte beschränkt ist. Viel mehr sind die spezifischen Merkmale und Schritte als bevorzugte Formen zur Ausführung der beanspruchten Erfindung offenbart.

Claims (16)

  1. Computerlesbarer Datenträger, der computerausführbare Instruktionen aufweist, die wenn sie durch einen Computer ausgeführt werden, ein Verfahren ausführen, das umfasst: Empfangen von Datenpaketen einer Gruppe mit einer definierten sequentiellen Reihenfolge; Bestimmen, ob Pakete dieser Gruppe fehlen und Verbinden einer festgelegten Wiederholungszeit mit den fehlenden Paketen; Anfordern der erneuten Übertragung nur der Pakete, die zu ihrer festgelegten Wiederholungszeit als immer noch fehlend bestimmt werden; Erwarten des Empfangs erneuter Übertragungen eines oder mehrerer fehlender Pakete; während des Erwartens, Wiederholen des Bestimmens und Anforderns solange Pakete der Gruppe fehlen und die verbleibenden fehlenden Pakete nicht als irrelevant erachtet werden, wobei jedes Paket einen Ablaufzeitstempel (ETS: expiration time stamp) aufweist und ein fehlendes Paket als irrelevant erachtet wird, wenn die gegenwärtige Zeit hinter dem ETS eines oder mehrerer empfangener Pakete liegt, die an das fehlende Paket angrenzen; oder Pakete in der Gruppe eine definierte Ablaufzeit aufweisen und fehlende Pakete als irrelevant erachtet werden, wenn die definierte Ablaufzeit eines oder mehrerer empfangener Pakete eingetreten ist.
  2. Datenträger nach Anspruch 1, wobei ferner ein fehlendes Paket als irrelevant erachtet wird, wenn ein oder mehrere empfangene Pakete der Gruppe an das fehlende Paket angrenzen.
  3. Datenträger nach Anspruch 1, wobei das Verfahren ferner den Schritt umfasst: wenn ein fehlendes Paket zu der festgelegten Wiederholungszeit immer noch fehlt, Dynamisches Anpassen der festgelegten Wiederholungszeit für dieses feh lende Paket, so dass eine festgelegte Wiederrückmelde-(re-reporting)-Zeitperiode hinzuaddiert wird.
  4. Datenträger nach Anspruch 1, wobei die Pakete der Gruppe sequentiell nummeriert sind.
  5. Datenträger nach Anspruch 1, wobei jedes Paket der Gruppe in der Größe gleichwertig ist.
  6. Datenträger nach Anspruch 1, wobei das anfängliche Anfordern der erneuten Übertragung ein definiertes Zeitintervall nach dem Bestimmen geschieht.
  7. Datenträger nach einem der Ansprüche 1 bis 6, wobei der Schritt des Anforderns weiter umfasst: Senden einer Negativ-Empfangsbestätigung (negative-acknowledgement, NACK), die die fehlenden Pakete bezeichnet.
  8. Datenträger nach Anspruch 3, wobei das Verfahren ferner umfasst: Wiederholen des Anforderns erneuter Übertragung dieses fehlenden Paketes zur angepassten Wiederholungszeit für dieses Paket.
  9. Rechenvorrichtung, die umfasst: einen Datenträger gemäß Anspruch 1; und eine Schnittstelle an ein Kommunikationsnetzwerk zum Senden und Empfangen von Daten.
  10. Kommunikations-Wiederholungsverfahren, das die Schritte umfasst: Empfangen von Datenpaketen einer Gruppe mit einer definierten sequentiellen Reihenfolge; Bestimmen, ob Pakete dieser Gruppe fehlen und Verbinden einer festgelegten Wiederholungszeit mit den fehlenden Paketen; Anfordern der erneuten Übertragung nur der Pakete, die zu ihrer festgelegten Wiederholungszeit als immer noch fehlend bestimmt werden; Erwarten des Empfangs erneuter Übertragungen eines oder mehrerer fehlender Pakete; während des Erwartens, Wiederholen des Bestimmens und Anforderns solange Pakete der Gruppe fehlen und die verbleibenden fehlenden Pakete nicht als irrelevant erachtet werden, wobei jedes Paket einen Ablaufzeitstempel (ETS: expiration time stamp) aufweist und ein fehlendes Paket als irrelevant erachtet wird, wenn die gegenwärtige Zeit hinter dem ETS eines oder mehrerer empfangener Pakete liegt, die an das fehlende Paket angrenzen; oder Pakete in der Gruppe eine definierte Ablaufzeit aufweisen und fehlende Pakete als irrelevant erachtet werden, wenn die definierte Ablaufzeit eines oder mehrerer empfangener Pakete eingetreten ist.
  11. Verfahren nach Anspruch 10, das ferner umfasst: Empfangen erneuter Übertragungen eines oder mehrerer fehlender Pakete.
  12. Verfahren nach Anspruch 10, das ferner umfasst: wenn ein fehlendes Paket zur festgelegten Wiederholungszeit als immer noch fehlend bestimmt wird, dann: Dynamisches Anpassen der festgelegten Wiederholungszeit, so dass eine festgelegte Wieder-Rückmeldezeitperiode hinzuaddiert wird; Wiederholen des Anforderns erneuter Übertragung dieses fehlenden Paketes zur angepassten Wiederholungszeit für dieses Paket.
  13. Verfahren nach Anspruch 10, wobei Pakete in der Gruppe eine definierte Ablaufzeit aufweisen, das Verfahren ferner umfassend: Empfangen erneuter Übertragungen eines oder mehrerer fehlender Pakete; Wiederholen des Bestimmens und Anforderns bis die verbleibenden fehlenden Pakete als irrelevant erachtet werden, weil die festgelegte Ablaufzeit eines oder mehrerer der Pakete eingetreten ist oder bis keine weiteren fehlenden Pakete vorhanden sind.
  14. Verfahren nach Anspruch 10, wobei die festgelegte Reihenfolge der Gruppe der Pakete sequentiell ist.
  15. Verfahren nach Anspruch 10, wobei die Pakete der Gruppe sequentiell nummeriert sind.
  16. Verfahren nach Anspruch 10, wobei das Anfordern erneuter Übertragung ein definiertes Zeitintervall nach dem Bestimmen stattfindet.
DE602004007329T 2003-06-13 2004-05-10 Zuverlässiges Multimedia Streaming mit wiederholten Übertragungen Active DE602004007329T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/461,797 US7076717B2 (en) 2003-06-13 2003-06-13 Time-aware best-effort hole-filling retry method and system for network communications
US461797 2003-06-13

Publications (2)

Publication Number Publication Date
DE602004007329D1 DE602004007329D1 (de) 2007-08-16
DE602004007329T2 true DE602004007329T2 (de) 2008-03-06

Family

ID=33299862

Family Applications (1)

Application Number Title Priority Date Filing Date
DE602004007329T Active DE602004007329T2 (de) 2003-06-13 2004-05-10 Zuverlässiges Multimedia Streaming mit wiederholten Übertragungen

Country Status (9)

Country Link
US (2) US7076717B2 (de)
EP (1) EP1487171B1 (de)
JP (1) JP4694152B2 (de)
KR (1) KR101066768B1 (de)
CN (1) CN100546236C (de)
AT (1) ATE366499T1 (de)
CA (1) CA2466231C (de)
DE (1) DE602004007329T2 (de)
MX (1) MXPA04005467A (de)

Families Citing this family (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8397269B2 (en) * 2002-08-13 2013-03-12 Microsoft Corporation Fast digital channel changing
US7523482B2 (en) * 2002-08-13 2009-04-21 Microsoft Corporation Seamless digital channel changing
US7603689B2 (en) * 2003-06-13 2009-10-13 Microsoft Corporation Fast start-up for digital video streams
US7720075B2 (en) * 2003-06-19 2010-05-18 Intel Corporation Network idle protocol with reduced channels
US7444419B2 (en) 2003-10-10 2008-10-28 Microsoft Corporation Media stream scheduling for hiccup-free fast-channel-change in the presence of network chokepoints
US7562375B2 (en) * 2003-10-10 2009-07-14 Microsoft Corporation Fast channel change
US7430222B2 (en) * 2004-02-27 2008-09-30 Microsoft Corporation Media stream splicer
US8782654B2 (en) 2004-03-13 2014-07-15 Adaptive Computing Enterprises, Inc. Co-allocating a reservation spanning different compute resources types
US20070266388A1 (en) 2004-06-18 2007-11-15 Cluster Resources, Inc. System and method for providing advanced reservations in a compute environment
US8176490B1 (en) 2004-08-20 2012-05-08 Adaptive Computing Enterprises, Inc. System and method of interfacing a workload manager and scheduler with an identity manager
US7640352B2 (en) * 2004-09-24 2009-12-29 Microsoft Corporation Methods and systems for presentation of media obtained from a media stream
JP2006129169A (ja) * 2004-10-29 2006-05-18 Toshiba Corp コンテンツ記録媒体補償システム、コンテンツ再生/記録装置及びコンテンツ再生/記録方法
CA2586763C (en) 2004-11-08 2013-12-17 Cluster Resources, Inc. System and method of providing system jobs within a compute environment
US7477653B2 (en) * 2004-12-10 2009-01-13 Microsoft Corporation Accelerated channel change in rate-limited environments
US7370129B2 (en) * 2004-12-15 2008-05-06 Microsoft Corporation Retry strategies for use in a streaming environment
US20060179392A1 (en) * 2005-02-08 2006-08-10 Takaaki Ota Handshakeless retransmission protocol
US8863143B2 (en) 2006-03-16 2014-10-14 Adaptive Computing Enterprises, Inc. System and method for managing a hybrid compute environment
US9225663B2 (en) 2005-03-16 2015-12-29 Adaptive Computing Enterprises, Inc. System and method providing a virtual private cluster
US9231886B2 (en) 2005-03-16 2016-01-05 Adaptive Computing Enterprises, Inc. Simple integration of an on-demand compute environment
EP2348409B1 (de) 2005-03-16 2017-10-04 III Holdings 12, LLC Automatische Arbeitslastübertragung auf ein On-Demand-Center
EP3203374B1 (de) 2005-04-07 2021-11-24 III Holdings 12, LLC Zugang auf anfrage zu computerressourcen
US8230289B2 (en) * 2005-11-23 2012-07-24 St-Ericsson Sa Data processor system and a method for communication data
US8135040B2 (en) * 2005-11-30 2012-03-13 Microsoft Corporation Accelerated channel change
JP2008048182A (ja) 2006-08-17 2008-02-28 Sony Corp 通信処理装置、および通信制御方法、並びにコンピュータ・プログラム
US9686045B2 (en) * 2007-04-04 2017-06-20 Lantiq Beteiligungs-GmbH & Co. KG Data transmission and retransmission
US8041773B2 (en) 2007-09-24 2011-10-18 The Research Foundation Of State University Of New York Automatic clustering for self-organizing grids
US8250181B2 (en) 2007-10-19 2012-08-21 Voxer Ip Llc Method and apparatus for near real-time synchronization of voice communications
US8559319B2 (en) 2007-10-19 2013-10-15 Voxer Ip Llc Method and system for real-time synchronization across a distributed services communication network
US8782274B2 (en) 2007-10-19 2014-07-15 Voxer Ip Llc Method and system for progressively transmitting a voice message from sender to recipients across a distributed services communication network
US8699383B2 (en) 2007-10-19 2014-04-15 Voxer Ip Llc Method and apparatus for real-time synchronization of voice communications
US8099512B2 (en) 2007-10-19 2012-01-17 Voxer Ip Llc Method and system for real-time synchronization across a distributed services communication network
WO2009052428A1 (en) 2007-10-19 2009-04-23 Rebelvox, Llc Method and system for real-time media synchronisation across a network
US8090867B2 (en) * 2007-10-19 2012-01-03 Voxer Ip Llc Telecommunication and multimedia management method and apparatus
JP4940117B2 (ja) 2007-12-06 2012-05-30 株式会社東芝 移動通信システムとそのゲートウェイ装置、集線装置およびハンドオーバ制御方法
KR100989716B1 (ko) 2008-01-21 2010-10-26 엘지전자 주식회사 컨텐츠 송수신 중지 및 재개 방법
JP2009246855A (ja) * 2008-03-31 2009-10-22 Yamatake Corp 通信システム
US10877695B2 (en) 2009-10-30 2020-12-29 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US11720290B2 (en) 2009-10-30 2023-08-08 Iii Holdings 2, Llc Memcached server functionality in a cluster of data processing nodes
US9100460B2 (en) * 2012-06-28 2015-08-04 Adobe Systems Incorporated Media stream fragment request
JP6139872B2 (ja) * 2012-12-10 2017-05-31 キヤノン株式会社 情報処理装置及びその制御方法、プログラム、記憶媒体、並びに、映像処理システム
JP5636574B2 (ja) * 2013-01-30 2014-12-10 株式会社日立製作所 通信装置、パケット転送方法及びそのプログラム
US10873593B2 (en) * 2018-01-25 2020-12-22 Cisco Technology, Inc. Mechanism for identifying differences between network snapshots
US11233716B2 (en) 2018-03-28 2022-01-25 Arlo Technologies, Inc. System for real-time monitoring with backward error correction
ES2962660T3 (es) * 2018-07-17 2024-03-20 Icu Medical Inc Sistemas y métodos para facilitar la mensajería clínica en un entorno de red

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06252978A (ja) * 1993-02-22 1994-09-09 Toshiba Corp ネットワークパラメタ自動調整装置
JPH0946375A (ja) * 1995-07-26 1997-02-14 Hitachi Ltd パケット交換網のパケット再送方法
JPH09191314A (ja) * 1996-01-10 1997-07-22 Mitsubishi Electric Corp 連続データ伝送方法および連続データ伝送装置
JPH10257096A (ja) * 1997-03-10 1998-09-25 Pioneer Electron Corp データ転送方法及び装置
US5918002A (en) 1997-03-14 1999-06-29 Microsoft Corporation Selective retransmission for efficient and reliable streaming of multimedia packets in a computer network
JPH1117737A (ja) * 1997-04-30 1999-01-22 Sony Corp 送信装置および送信方法、受信装置および受信方法、並びに送受信装置および送受信方法
US6392993B1 (en) * 1998-06-29 2002-05-21 Microsoft Corporation Method and computer program product for efficiently and reliably sending small data messages from a sending system to a large number of receiving systems
US6286111B1 (en) 1998-09-01 2001-09-04 International Business Machines Corporation Retry mechanism for remote operation failure in distributed computing environment
US6587985B1 (en) 1998-11-30 2003-07-01 Matsushita Electric Industrial Co., Ltd. Data transmission method, data transmission apparatus, data receiving apparatus, and packet data structure
US6335933B1 (en) * 1999-05-21 2002-01-01 Broadcom Homenetworking, Inc. Limited automatic repeat request protocol for frame-based communication channels
US6907005B1 (en) * 2000-07-24 2005-06-14 Telefonaktiebolaget L M Ericsson (Publ) Flexible ARQ for packet data transmission
JP2002232478A (ja) * 2000-11-06 2002-08-16 Matsushita Electric Ind Co Ltd 送信装置、受信装置及び放送データ配信方法
JP3931595B2 (ja) * 2001-07-10 2007-06-20 株式会社日立製作所 データ修正装置及びデータ修正方法
JP3912091B2 (ja) * 2001-12-04 2007-05-09 ソニー株式会社 データ通信システム、データ送信装置、データ受信装置、および方法、並びにコンピュータ・プログラム
US6850769B2 (en) * 2002-02-14 2005-02-01 Qualcomm Incorporated Method and apparatus for adaptive measurement of round-trip time in ARQ protocols and using the same for controlling flow of data in a communication system
US6920504B2 (en) * 2002-05-13 2005-07-19 Qualcomm, Incorporated Method and apparatus for controlling flow of data in a communication system
US6987780B2 (en) * 2002-06-10 2006-01-17 Qualcomm, Incorporated RLP retransmission for CDMA communication systems

Also Published As

Publication number Publication date
KR101066768B1 (ko) 2011-09-21
MXPA04005467A (es) 2005-03-23
KR20040107400A (ko) 2004-12-20
ATE366499T1 (de) 2007-07-15
US20040255219A1 (en) 2004-12-16
JP2005006340A (ja) 2005-01-06
US20060251082A1 (en) 2006-11-09
JP4694152B2 (ja) 2011-06-08
EP1487171B1 (de) 2007-07-04
DE602004007329D1 (de) 2007-08-16
CA2466231C (en) 2011-08-16
EP1487171A1 (de) 2004-12-15
US7076717B2 (en) 2006-07-11
CA2466231A1 (en) 2004-12-13
CN100546236C (zh) 2009-09-30
CN1574719A (zh) 2005-02-02

Similar Documents

Publication Publication Date Title
DE602004007329T2 (de) Zuverlässiges Multimedia Streaming mit wiederholten Übertragungen
DE60123280T2 (de) Verfahren für multimediakommunikation über paketkanäle
DE69931215T2 (de) Verfahren und Rechnerprogrammprodukt zum effizienten und sicheren Senden von kleinen Datennachrichten von einem Sender zu einer grossen Anzahl von Empfangssystemen
DE69935554T2 (de) Verfahren und Rechnerprogrammprodukt zum effizienten und zuverlässigen Übertragen von kleinen Datennachrichten von einem Sendesystem zu einer grossen Anzahl von Empfangssystemen
DE69930992T2 (de) Verfahren und Rechnerprogrammprodukt zum effizienten und sicheren Senden von kleinen Datennachrichten von einem Sender zu einer grossen Anzahl von Empfangssystemen
DE60029221T2 (de) Begrenztes automatisches wiederholungsaufforderungsprotokoll für rahmenbasierte kommunikationskanäle
DE102008003068B4 (de) Verfahren zum Senden von Datenpaketen von einem Server an einen Client, wobei der Client zeitgleich die empfangenen Daten mit einem konstanten Durchsatz D verwendet
DE60223799T2 (de) Verfahren und sender für einen effizienten paketdatentransfer in einem übertragungsprotokoll mit wiederholungsanforderungen
DE69736713T2 (de) Anordnung und verfahren zur übertragung von ip-daten über ein satellitennetz
DE60109258T2 (de) Datenübertragungsverfahren und Einrichtung mit automatischer Wiederholungsaufforderung
DE60314214T2 (de) Verfahren und Vorrichtung zur Übertragungswiederholung von Multicastdaten
DE60211335T2 (de) Echtzeitpaketisierung und Wiederübertragung in Streaming Anwendungen
DE60132735T2 (de) Fehlerkorrekturübertragungsverfahren zum Übertragen von Datenpaketen in einem Netzkommunikationssystem
DE60219588T2 (de) Verfahren zur Unterscheidung von Paketverlusten
US8040891B2 (en) System and method of detecting lost packets
WO2019214550A1 (zh) 报文传输方法及装置、系统、存储介质、电子装置
KR20040035759A (ko) 베스트-에포트 데이터의 스케줄링된 스트림밍을 위한 방법및 장치
DE10295696T5 (de) Schlitzformat und Quittierungsverfahren für ein drahtloses Kommunikationssystem
DE60304629T2 (de) Vorrichtung und Verfahren zum Senden und Empfangen von Daten zur vollständigen Datenübertragung
DE60132974T2 (de) Empfängerseitig gesteuerte isochrone übertragung
CN108809893A (zh) 一种视频质量评估方法和设备
EP1931082A1 (de) Verfahren und Vorrichtung für Daten-Multicasting
DE60118673T2 (de) System und Methode zur Bewahrung der Bandbreite bei der Übertragung von Nachrichtenpaketen
DE102017222299A1 (de) Kommunikation mit geringer latenz
DE60318179T2 (de) Neuübertragung einer burst-kopie in einem breitband-digitalnetzwerk

Legal Events

Date Code Title Description
8364 No opposition during term of opposition