-
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.