-
Die vorliegende Erfindung betrifft im Allgemeinen Kommunikationsnetze und insbesondere lokale Netze, wie beispielsweise Heimnetze.
-
Hintergrund der Erfindung
-
Die
US 2006/0198325 A1 offenbart eine Multicast-Übertragung in einem Funknetz, wobei Nachrichten von einem Sender an mehrere Empfänger übertragen werden. Einer dieser Empfänger wird als Leader bestimmt. Wenn der Leader ein Paket korrekt empfängt, sendet er eine Bestätigung an den Sender. Wenn einer der anderen Empfänger einen Fehler in einem empfangenen Paket entdeckt, sendet dieser Empfänger eine negative Bestätigung an den Sender.
-
Die
US 2006/0274644 A1 betrifft drahtlose Kommunikationssysteme, wobei zwischen Blattknoten und Infrastrukturknoten unterschieden wird. Während die Blattknoten Nachrichten nur mit Infrastrukturknoten austauschen, tauschen die Infrastrukturknoten Nachrichten sowohl mit Blattknoten als auch mit Infrastrukturknoten aus.
-
Im heutigen Geschäftsumfeld steht und fällt der Erfolg damit, ob Informationen in einer effizienten Weise ausgetauscht werden können. Zum Beispiel haben Mobiltelefone, Personenrufempfänger (”Pager”) und das Internet Erfolg, da jede dieser Technologien bei bestimmten Aufgaben ermöglicht, Informationen über ein Netz auszutauschen. Daher besteht, um unser gesellschaftliches Bedürfnis nach einem effizienten Austausch von Informationen zu befriedigen, ein ständiger Bedarf nach Verbesserungen bei Netzen.
-
Zusammenfassung der Erfindung
-
Die vorliegende Erfindung stellt sich die Aufgabe, die Wahrscheinlichkeit, dass Daten aufgrund von Störungen auf dem Übertragungsmedium (z. B. aufgrund von Rauschen) nicht übertragen werden, zu verringern.
-
Erfindungsgemäß wird diese Aufgabe durch ein Verfahren zur Kommunikation über ein Übertragungsmedium nach Anspruch 1, durch ein Netz nach Anspruch 17 und durch eine Vorrichtung nach Anspruch 21, 23, 24 und 25 gelöst. Die abhängigen Ansprüche definieren bevorzugte und vorteilhafte Ausführungsformen der vorliegenden Erfindung.
-
Das Netz und/oder die Vorrichtung kann dabei jeweils zur Durchführung des erfindungsgemäßen Verfahrens ausgestaltet sein.
-
Im Folgenden wird eine vereinfachte Zusammenfassung der Offenbarung beschrieben, um für ein grundsätzliches Verständnis einiger Aspekte der Offenbarung zu sorgen. Diese Zusammenfassung ist kein umfangreicher Überblick über die Offenbarung und soll weder kritische Elemente der Offenbarung identifizieren, noch den Umfang der Offenbarung abgrenzen. Der Zweck dieser Zusammenfassung ist nur, einige Konzepte der Offenbarung in einer vereinfachten Form darzulegen, wobei für Details auf die folgende detaillierte Beschreibung der vorliegenden Erfindung verwiesen wird.
-
Eine erfindungsgemäße Ausführungsform betrifft ein Verfahren, um über ein Übertragungsmedium zu kommunizieren, welches von mehreren Knoten gemeinsam genutzt wird, welche einen Ursprungsknoten, einen Proxy-Knoten (Stellvertreter-Knoten oder stellvertretenden Knoten) und andere Knoten umfassen. Gemäß diesem Verfahren wird eine Übertragungsdateneinheit von dem Ursprungsknoten an den Proxy-Knoten und an die anderen Knoten übertragen. Ein Nachweis wird von dem Proxy-Knoten zu den anderen Knoten abhängig davon selektiv übertragen, ob eine Empfangsdateneinheit, welche der Übertragungsdateneinheit entspricht, korrekt an dem Proxy-Knoten empfangen worden ist. Abhängig davon, ob der Nachweis an einem der anderen Knoten empfangen worden ist, wird eine negative Bestätigung selektiv von dem einen der anderen Knoten an den Ursprungsknoten übertragen.
-
Kurze Beschreibung der Zeichnungen
-
1 stellt eine Ausführungsform eines Netzes dar, welches Daten zwischen mehreren Knoten über ein Übertragungsmedium überträgt.
-
2 stellt eine Ausführungsform eines Unicast-Übertragungsprotokolls für das Netz dar.
-
3 stellt eine erfindungsgemäße Ausführungsform eines Multicast-Übertragungswiederholungsprotokolls dar, welches einen Proxy-Knoten verwendet.
-
4 stellt eine weitere erfindungsgemäße Ausführungsform eines Multicast-Übertragungswiederholungsprotokolls dar, welches einen Proxy-Knoten verwendet.
-
5 stellt eine erfindungsgemäße Ausführungsform eines Multicast-Übertragungswiederholungsprotokolls dar, welches einen Proxy-Knoten verwendet und Blöcke einsetzt.
-
6 stellt eine erfindungsgemäße Ausführungsform eines Multicast-Übertragungswiederholungsprotokolls dar, bei welchem erste und zweite Zeitschlitze in entsprechende Zeitschlitze unterteilt sind, welche Knoten des Netzes zugeordnet sind.
-
7 stellt eine erfindungsgemäße Ausführungsform eines Übertragungswiederholungsprotokolls dar, welches einen Proxy-Knoten und strukturierte Übertragungswiederholungsrechte verwendet.
-
In 8 ist ein Flussplan einer erfindungsgemäßen Ausführungsform des erfindungsgemäßen Verfahrens dargestellt.
-
Detaillierte Beschreibung der Erfindung
-
Die vorliegende Offenbarung wird mit Bezug zu den Zeichnungen beschrieben, wobei gleiche Bezugszeichen verwendet werden, um durchweg ähnliche Elemente zu bezeichnen, und wobei die dargestellten Strukturen nicht notwendigerweise maßstabsgetreu dargestellt sind. Obwohl verschiedene dargestellte Ausführungsformen als Hardware-Struktur beschrieben und dargestellt sind, können die Funktionalität und die entsprechenden Merkmale des erfindungsgemäßen Systems auch durch entsprechende Softwareroutinen oder durch eine Kombination aus Hardware und Software realisiert werden. Daher soll die vorliegende Offenbarung nicht als auf irgendeine bestimmte Implementierung beschränkt angesehen werden, sondern die Offenbarung soll derart ausgelegt werden, dass sie jegliche Implementierung abdeckt, welche unter den Geist und den Umfang der beigefügten Ansprüche fällt.
-
1 stellt ein Netz 100, beispielsweise ein lokales Netz, dar, welches mehrere Knoten 102 umfasst. Diese Knoten 102 sind mit einem Übertragungsmedium 104 gekoppelt, über welches sie Signale senden und/oder empfangen. Das Übertragungsmedium 104 kann ein drahtloses Übertragungsmedium, ein drahtgestütztes Übertragungsmedium oder Kombinationen davon umfassen. Bei einigen Ausführungsformen kann das Übertragungsmedium 104 einen Trunk 106 umfassen, von welchem sich eine Anzahl Zweige 108 erstrecken, wobei jeder Zweig 108 Signale zu und von unterschiedlichen Knoten 102 befördert.
-
Bei einer Ausführungsform ist das Netz 100 ein Heimnetz, welches Breitbanddienste von einem Zugangsnetz (nicht dargestellt) an die Knoten 102 verteilt. Daher umfasst bei einigen Ausführungsformen jeder Knoten 102 eine TV-Einrichtung, einen Computer, eine Videokonferenzvorrichtung, ein Modem, eine Musikanlage, ein Telefon und/oder irgendeine andere Netzeinrichtung. Bei solchen Ausführungsformen umfasst das Übertragungsmedium 104 insbesondere eine Hausverdrahtung, wie beispielsweise Haustelefonleitungen (z. B. ein verdrilltes Paar von Kupferleitungen), Koaxialkabelleitungen, Stromleitungen und/oder eine zweckbestimmte Heimnetzverdrahtung, usw.. Bei solchen Ausführungsformen kann einer der Knoten 102 einem Wohnbezirkszugang (RG (”Residential Gateway”)) zugeordnet sein, welcher wiederum mit einem Zugangsnetzabschluss in den Räumlichkeiten des Kunden (gewöhnlicherweise als ”CPE Modem” oder einfach als ”CPE” bezeichnet (”Customer Premises Equipment”)) verbunden ist.
-
Eine Kommunikation innerhalb des Netzes 100 ist strukturiert, um den Einfluss von Störungen zwischen den Knoten 102 zu beschränken. Die Kommunikation kann beispielsweise strukturiert werden, indem ein Mehrträgerkommunikationskanal eingesetzt wird, mittels welchem verschiedene Typen einer Mehrträgerkommunikation, wie beispielsweise ein orthogonales Frequenzmultiplexen (OFDM (”Orthogonal Frequency Division Multiplexing”)), verwendet werden können. Eine Mehrträgermodulation unterteilt das Frequenzspektrum, über welches die Knoten 102 kommunizieren, in eine Reihe von Frequenzkanälen, welche auch als Unterträger oder Hilfsträger bezeichnet werden können. Getrennte Zeitschlitze und/oder Frequenzkanäle werden bestimmten Knoten zugewiesen, um Störungen zwischen den Knoten zu beschränken.
-
Innerhalb des Netzes 100 können verschiedene Kommunikationstypen eingesetzt werden, um Dateneinheiten auszutauschen, was folgende Typen einschließt: unicast (z. B. Punkt-zu-Punkt), multicast (z. B. Punkt zu Gruppe) und Rundsenden (broadcast bzw. von einem Punkt zu allen anderen Punkten). Dateneinheiten können Rahmen (z. B. Internet-Rahmen), Pakete (z. B. IP-Pakete) und andere Typen von Dateneinheiten umfassen.
-
2 stellt ein Beispiel eines Unicast-Übertragungsprotokolls 200 dar, wobei ein Ursprungsknoten 110 (z. B. Knoten A) eine Übertragungsdateneinheit 112 an einen einzigen Zielknoten 114 (z. B. Knoten B) sendet. Oft identifiziert die Übertragungsdateneinheit 112 den Zielknoten 114 durch seine Netzadresse, wie beispielsweise eine MAC-Adresse oder eine Hardware-Identifikationsnummer, aber der Zielknoten 114 kann auch identifiziert werden, indem die Übertragungsdateneinheit 112 auf einem Kanal übertragen wird, welcher für eine Kommunikation zwischen dem Ursprungsknoten und dem Zielknoten reserviert ist (beispielsweise ein reservierter Zeitschlitz oder ein reserviertes Frequenzband).
-
Eine Empfangsdateneinheit 112*, welche der Übertragungsdateneinheit 112 entspricht, wird dann an dem Zielknoten empfangen. Da ein Rauschen 116 auf dem Übertragungsmedium fehlerhafte Daten in der Empfangsdateneinheit 112* erzeugen kann, überprüft der Zielknoten 114 die Empfangsdateneinheit 112* auf Fehler. Wenn keine Fehler gefunden werden (oder wenn Fehler vorhanden sind, welche aber durch redundante Informationen in der Empfangsdateneinheit 112* korrigierbar sind), sendet der Zielknoten 114 eine Übertragungsbestätigung (ACK (”Acknowledgement”)) 118 an den Ursprungsknoten 110. Wenn der Ursprungsknoten 110 keine Empfangs-ACK 118* innerhalb einer bestimmten Zeitperiode empfängt, wiederholt der Ursprungsknoten 110 die Übertragung der Übertragungsdateneinheit 112 und wartet auf eine andere Empfangs-ACK 118*. Dieses Übertragungs- und Bestätigungs-Verfahren kann in einer iterativen Weise fortgesetzt werden, bis die Übertragungsdateneinheit 112 schließlich dem Zielknoten 114 zugestellt wird, wodurch eine zuverlässige Kommunikation erzielt wird. Alternativ kann die Übertragungswiederholung gestoppt werden, wenn die Übertragungswiederholungsversuche länger als eine vorbestimmte Zeitspanne dauern oder eine vorbestimmte Anzahl überschritten wird. Obwohl dieses Unicast-Übertragungsprotokoll effektiv ist, ist es ineffektiv, wenn Daten zu mehreren unterschiedlichen Knoten in dem Netz zu übertragen sind. In solch einem Fall können Multicast-Übertragungsprotokolle, mit welchen Daten auf einmal zu mehreren Knoten übertragen werden, nützlich sein. Ein bestimmter Typ einer Multicast-Übertragung ist eine Broadcast-Übertragung, bei welcher Daten zu allen Knoten in dem Netz übertragen werden.
-
3 stellt ein erfindungsgemäßes Beispiel eines Multicast-Übertragungsprotokolls 300 dar. Das Multicast-Kommunikationsprotokoll 300, welches einen anfänglichen Übertragungs-/Bestätigungs-Zyklus 302 und einen oder mehrere Übertragungswiederholungs-/Bestätigungs-Zyklen 304 aufweist, wird zwischen einem Ursprungsknoten (z. B. Knoten A) und mehreren Zielknoten (z. B. den Knoten B, C und D) ausgeführt. Das Ziel des Übertragungswiederholungsprotokolls bei Multicast ist, sicherzustellen, dass alle Knoten der Multicast-Gruppe die Daten fehlerfrei empfangen. Wenn zumindest ein Knoten nicht korrigierbare Daten empfängt, wird die Übertragung der Daten wiederholt.
-
Die Zielknoten unterteilen sich auf einen Proxy-Knoten (z. B. Knoten B) und mehrere andere Zielknoten (z. B. den Knoten C und den Knoten D).
-
Wie es im Folgenden genauer beschrieben ist, ist dieses Multicast-Übertragungsprotokoll 300 insbesondere vorteilhaft, wenn das Rauschen in dem Netz analysiert wird und der Proxy-Knoten als derjenige Zielknoten ausgewählt wird, welcher das höchste Rauschniveau relativ zu einem bestimmten Ursprungsknoten aufweist. Dies ist vorteilhaft, da es dem Ursprungsknoten ein gutes Maß bereitstellt, ob eine Übertragungsdateneinheit erfolgreich zu allen erwünschten Zielknoten übertragen worden ist. Vereinfacht gesagt, nimmt das Netz an, dass es sehr wahrscheinlich ist, wenn der ”schlechteste” Knoten (der Proxy-Knoten) eine Übertragungsdateneinheiten korrekt empfängt, dass die anderen Zielknoten die Übertragungsdateneinheit ebenfalls korrekt empfangen (obwohl dies nicht garantiert ist). Selbst wenn das Rauschniveau korrekt abgeschätzt worden ist und der Knoten mit dem höchsten Rauschniveau als Proxy ausgewählt worden ist, garantiert dies dennoch nicht, dass alle anderen Knoten die Daten korrekt empfangen (oder die Daten überhaupt empfangen). Das letztgenannte liegt dann vor, wenn ein Impulsrauschen den Header (Kopf) eines Datenrahmens trifft: wenn der Header verfälscht ist, wird die Zieladresse unlesbar und der entsprechende Knoten kann das Paket nicht empfangen. Aus diesem Grund können, auch wenn der Proxy-Knoten die Daten richtig empfängt, die anderen Knoten die Daten fehlerhaft empfangen oder die Daten überhaupt nicht empfangen werden.
-
Das Diagramm der 3 beginnt, wenn ein Ursprungsknoten (z. B. Knoten A) anfangs eine Multicast-Übertragungsdateneinheit 112a zu mehreren Zielknoten (z. B. Knoten B, Knoten C und Knoten D) überträgt. Die Übertragungsdateneinheit 112a umfasst eine Präambel P (z. B. einen Dateianfang), einen Header H und Nutzlastdaten PL (”Pay Load”). Die Präambel umfasst oft ein Signalmuster, wie beispielsweise eine vorbestimmte Phasencharakteristik, welche den Beginn der Übertragungsdateneinheit 112a identifiziert. Der Header umfasst die Ursprungsknoten-Adresse, mindestens eine Zielknoten-Adresse, die Dauer oder die Länge der Übertragungsdateneinheit wie auch andere Dateneinheitssteuerinformationen (z. B. eine Folgenummer, eine Konstellationskodierung, Vorwärtsfehlerkorrekturparameter). Bei diesem Beispiel identifiziert die Ursprungsadresse den Knoten A, und die Zieladresse identifiziert die Knoten der Multicast-Gruppe, welche die Übertragungsdateneinheit 112a empfangen sollen (beispielsweise die Knoten B, C und D). Die Zieladresse kann die entsprechenden Adressen der Zielknoten listen oder sie kann eine einzelne Adresse umfassen, welche der Multicast-Gruppe zugeordnet ist. Bei einigen Ausführungsformen kann es sich bei der Zieladresse um diejenige des Ursprungsknotens handeln, was anzeigt, dass es sich bei der Übertragungsdateneinheit 112a um eine Broadcast-Dateneinheit handelt, welche an alle Knoten in dem Netz zu übertragen ist.
-
Nachdem die Übertragungsdateneinheit 112a übertragen worden ist, tritt eine gewisse Verzögerung Δ auf, bevor die Empfangsdateneinheit 112a* entsprechend von den anderen Knoten empfangen wird. Bei dem dargestellten Beispiel werden die Empfangsdateneinheiten 112a-1*, 112a-2* bzw. 112a-3* von dem Knoten B, dem Knoten C bzw. dem Knoten D empfangen. Obwohl nur eine einzige Verzögerung Δ zur Vereinfachung für alle Knoten dargestellt ist, wird in der Praxis jeder Knoten seine entsprechende Empfangsdateneinheit mit einer Verzögerung relativ zu dem Ursprungsknoten empfangen, welche sich von den Verzögerungen der anderen Knoten unterscheidet.
-
Nachdem die Zielknoten ihre entsprechenden Empfangsdateneinheiten (welche nun aufgrund eines Rauschens in dem Netz 100 fehlerhafte Daten umfassen können) empfangen haben, analysiert in jedem Fall jeder Zielknoten seine Empfangsdateneinheit und entscheidet, ob seine Empfangsdateneinheit nicht korrigierbare Daten umfasst. In dem dargestellten Beispiel hatte der Knoten B entschieden, dass die Empfangsdateneinheit 112a-1* korrekt ist, während der Knoten C und der Knoten D entschieden haben, dass ihre Empfangsdateneinheiten 112a-2* bzw. 112a-3* nicht korrigierbare Daten umfassen (wie es durch die ”X”-Blöcke gekennzeichnet ist).
-
Der Proxy-Knoten, Knoten B, ist ausgewählt, um abhängig davon, ob seine Empfangsdateneinheit nicht korrigierbare Daten umfasst, eine Bestätigung (ACK) 118a, welche an den Ursprungsknoten adressiert ist, zu übertragen, wie beispielsweise eine Nachricht oder ein Signal, welches einen vordefinierten Spannungspegel oder eine vordefinierte Phase aufweist. Da in dem dargestellten Beispiel der Proxy-Knoten (Knoten B) die Empfangsdateneinheit 112a-1* korrekt empfängt, überträgt der Knoten B ACK 118a während eines ersten Zeitschlitzes 120 auf dem Übertragungsmedium 104. Wenn der Proxy-Knoten dagegen entschieden hätte, dass die Empfangsdateneinheit 112a-1* nicht korrigierbare Daten umfasst, wäre der Proxy-Knoten im Ruhezustand geblieben, ohne eine ACK 118a während des ersten Zeitschlitzes 120 zu übertragen. In dem dargestellten Beispiel beginnt der erste Zeitschlitz 120 zu einer Zeit T1, nachdem der Proxy-Knoten das Ende der Empfangsdateneinheit 112a-1* empfangen hat, obwohl der erste Zeitschlitz 120 auch zu einer anderen vereinbarten Zeit starten könnte.
-
Wenn einer oder mehrere der anderen Nicht-Proxy-Knoten nicht korrigierbare Daten innerhalb der Empfangsdateneinheit 112a* empfängt, gibt es auch einen zweiten Zeitschlitz 122, in welchem die anderen Nicht-Proxy-Knoten entsprechende negative Bestätigungen (NACK (”Negative ACK”)) 124 übertragen können. Zum Beispiel hat der Knoten C nicht korrigierbare Daten in der Empfangsdateneinheit 112a-2* empfangen und überträgt daher eine NACK 124 während des zweiten Zeitschlitzes 122. Um die Wahrscheinlichkeit, dass die NACK erfolgreich empfangen wird, zu erhöhen, können die NACKs mehrere Male übertragen werden oder können Signale mit einer höheren Unempfindlichkeit (Sicherheit) einsetzen. In dem erstgenannten Fall könnte eine Übertragungswiederholung der NACKs initiiert werden, indem der Ursprungsknoten eine Anweisung ”Übertrage die NACK noch einmal” an die Zielknoten sendet.
-
Wenn der Ursprungsknoten ein ACK-Signal 118a* während des ersten Zeitschlitzes 120 empfängt und während des zweiten Zeitschlitzes 122 keine NACK 124 empfängt, wird daher die Multicast-Übertragung der Übertragungsdateneinheit 112a als erfolgreich angesehen. Wenn andererseits der Ursprungsknoten während des ersten Zeitschlitzes 120 kein ACK-Signal empfängt oder während des zweiten Zeitschlitzes 122 ein NACK-Signal empfängt, wird die Übertragung als nicht erfolgreich angesehen und die Nutzlastdaten der Übertragungsdateneinheit 112a werden während eines Übertragungswiederholungs-/Bestätigungs-Zyklus 304 erneut in einer Übertragungsdateneinheit 112b übertragen. Daher zeigt die 3 im Bestreben, die Übertragungsdateneinheit 112a zuverlässig zu übertragen, auf der rechten Seite eine Übertragung einer zweiten Übertragungsdateneinheit 112b, welche dieselben Nutzlastdaten wie die Übertragungsdateneinheit 112a enthält.
-
Das Multicast-Übertragungsprotokoll der 3 weist den Vorteil auf, dass es dem Netz 100 ermöglicht, abhängig davon, ob der Proxy-Knoten ein ACK 118a gesendet hat, eine gute Abschätzung dafür zu bekommen, ob alle Knoten der Multicast-Gruppe eine Multicast-Übertragung korrekt empfangen haben. Diese Abschätzung ist meist richtig, da der Proxy-Knoten als der ”schlechteste” Knoten bezüglich des Rauschens gekennzeichnet oder gewählt ist. Dieses Bestätigungs-Schema ist jedoch nicht vollständig zuverlässig, da es mit dem Fall, wenn ein oder mehrere Knoten eine Dateneinheit nicht empfangen (oder nicht geeignet bestimmen können, ob eine Dateneinheit für sie bestimmt ist) nicht angemessen umgeht. In dem in 3 dargestellten Beispiel empfängt der Knoten D zwei aufeinanderfolgende Empfangsdateneinheiten 112a-3*, 112b-3*, in welchem der Header (z. B. die Zieladresse) durch das Rauschen beschädigt ist. Daher ignoriert der Knoten D die Empfangsdateneinheiten 112a-3*, 112b-3*, da er nicht erkennt, dass er der vorgesehene Empfänger ist. Daher überträgt er weder eine ACK noch eine NACK. Demzufolge empfängt der Knoten D tatsächlich die Übertragungsdateneinheit 112 nicht korrekt, obwohl der Ursprungsknoten annimmt, dass die Multicast-Dateneinheit erfolgreich durch den zweiten Übertragungsversuch während der Übertragungswiederholungszeit 304 an alle Knoten übertragen worden ist.
-
4 stellt ein erfindungsgemäßes Beispiel einer anderen Technik dar, wobei einige der Nachteile bei der Ausführungsform der 3 nicht auftreten. In ähnlicher Weise wie bei 3 stellt 4 eine Ausführungsform dar, wobei der Knoten A als Multicast-Ursprung und der Knoten B als ein Proxy-Knoten ausgewählt ist. Anstatt dass der Proxy-Knoten ein ACK als ein einfaches Signal sendet, sendet der Proxy-Knoten jedoch bei dieser Ausführungsform in Multicast eine oder mehrere Nachweis(CONF (”Confirmation”))-Nachrichten 400, welche die Präambel und den Header umfassen, die die Dateneinheit, welche bestätigt wird, identifizieren. Da diese detailliertere CONF-Nachricht in Multicast an den Ursprungsknoten wie auch an die anderen Zielknoten gesendet wird, stellt es den anderen Zielknoten eine weitere Möglichkeit bereit, zu erfassen, dass eine Nachricht für sie bestimmt war, wodurch die Wahrscheinlichkeit einer zuverlässigen Übertragung erhöht wird.
-
Im Detail überträgt in 4 der Ursprungsknoten die Übertragungsdateneinheit 112a, welche dann als Empfangsdateneinheit 112a-1*, 112a-2* bzw. 112a-3* an dem Knoten B, C bzw. D empfangen wird. Der Proxy-Knoten B empfängt die Empfangsdateneinheit 112a-1* korrekt, aber andere Zielknoten C und D empfangen die Empfangsdateneinheit 112a-2* bzw. 112a-3*, welche nicht korrigierbare Daten umfasst, wie es durch die ”X”-Kästen gekennzeichnet ist. Es sei angemerkt, dass, obwohl der Knoten D die Empfangsdateneinheit 112a-3* empfängt, er diese mit einem beschädigten Header empfängt und daher nicht erkennt, dass er der entsprechende Empfänger ist.
-
Während des ersten Zeitschlitzes 120 überträgt der Proxy-Knoten B eine CONF-Nachricht 400a, welche eine Präambel P, einen optionalen Header H1 und einen Identifizierer I umfasst, welcher die Empfangsdateneinheit 112a-1* identifiziert, welche korrekt empfangen worden ist. Bei einigen Ausführungsformen kann der Identifizierer einen Header H der Empfangsdateneinheit 112a-1* umfassen, aber andere Identifizierer können auch verwendet werden. Obwohl es in 4 nicht explizit dargestellt ist, kann diese CONF-Nachricht 400a darüber hinaus auch eine Nutzlastdateninformation enthalten, welche der Übertragungsdateneinheit 112a entspricht. Da die Zieladresse in dem Header H1 der CONF-Nachricht 400a alle Knoten in der Multicast-Gruppe spezifiziert, analysieren die anderen Zielknoten die empfangenen CONF-Nachrichten 400a*.
-
Es sei angemerkt, dass der Knoten D die Empfangsdateneinheit 112a-3* ignoriert hat, da ihr Header (z. B. die Zieladresse) nicht korrekt war. Durch Analysieren der CONF-Nachricht 400a erkennt der Knoten D jedoch, dass er eine Übertragungsdateneinheit 112a verpasst hat, bei welcher er als Empfänger vorgesehen war. Daher überträgt der Knoten D während des zweiten Zeitschlitzes 122 ein NACK 124, da er aufgrund der empfangenen CONF-Nachricht 400a* erkannt hat, dass er eine Dateneinheit verpasst hat, für welche er als Empfänger vorgesehen war. Bei einem Vergleich der 3 mit der 4 (welche bezüglich des Rauschens dieselben Merkmale aufweisen und wobei der Knoten D die Empfangsdateneinheit 112a-3* aufgrund des beschädigten Headers ignoriert) stellt das Protokoll der 4 vorteilhafterweise eine zuverlässigere Übertragungswiederholung bereit, da der Knoten D nun durch seinen erfolgreichen Empfang von CONF 400a* in der Lage ist, zu erkennen, dass er die Dateneinheit 112a verpasst hat.
-
Zur Vollständigkeit bezüglich der 4 sei angemerkt, dass während des zweiten Zeitschlitzes 122 der Knoten C eine NACK 124 überträgt, da die Empfangsdateneinheit 112a-2* nicht korrigierbare Daten umfasst. Es sei angemerkt, dass diese NACKs, obwohl es so dargestellt ist, dass sie während eines gemeinsamen Zeitschlitzes (z. B. in dem zweiten Zeitschlitz 122) übertragen werden, auch während unterschiedlicher Zeitschlitze übertragen werden können.
-
Während der Übertragungswiederholungszeit 304 führt der Ursprungsknoten aufeinanderfolgende Übertragungswiederholungen der Übertragungsdateneinheit 112a als Übertragungsdateneinheit 112b durch, wenn ein Empfang der CONF-Nachricht 400 gescheitert ist und/oder wenn NACKs 124 empfangen worden sind, was bei einigen Ausführungsformen eine vorbestimmte Spannung oder ein Phasensignal einer bestimmten Form sein kann. Eine zusätzliche Übertragungswiederholung kann ebenfalls stattfinden, bis die Nutzlastdaten PL erfolgreich ausgetauscht sind.
-
Es sei angemerkt, dass ein Knoten vorteilhafterweise, wenn er einmal die Nutzlastdaten korrekt empfangen hat, typischerweise keine Übertragungswiederholung dieser Nutzlastdaten anfordert, unabhängig davon, ob spätere Übertragungswiederholungen derselben Nutzlastdaten mit Fehlern an diesem Knoten empfangen worden sind. Wenn ein Segment von Nutzlastdaten korrekt empfangen worden ist, aber später nochmals bei einer Übertragungswiederholung mit Fehlern empfangen wird, fordert der empfangene Knoten typischerweise daher keine Übertragungswiederholung an, da das Nutzlastdatensegment bereits erfolgreich empfangen worden ist.
-
Es sei angemerkt, dass, obwohl das Rauschverhalten in der 4 dasselbe ist, wie dasjenige der 3, das Endergebnis unterschiedlich ist. Da der Knoten D am Ende der Darstellung der 4 die Empfangsdateneinheit 112b* noch nicht korrekt empfangen hat, überträgt er nun eine NACK 124 während des Übertragungswiederholungs/Bestätigungs-Zyklus 304, so dass der Ursprungsknoten über die Tatsache alarmiert wird, dass der Knoten D die Nutzlastdaten PL noch nicht empfangen hat. Daher kann der Knoten B ein Senden der Nutzlastdaten in Übertragungsdateneinheiten fortsetzen, bis sie korrekt von dem Knoten D empfangen worden sind. Im Gegensatz dazu verhielt sich am Ende der 3 der Knoten D ruhig, ohne eine NACK in dem Übertragungswiederholungs-/Bestätigungs-Zyklus 304 zu übertragen, wodurch er den Ursprungsknoten nicht darüber alarmierte, dass er die Nutzlastdaten noch nicht empfangen hat.
-
Um die Wahrscheinlichkeit zu erhöhen, dass die CONF-Nachricht 400a von allen Knoten empfangen wird, kann der Proxy-Knoten (Knoten B) derart konfiguriert werden, dass er eine Übertragungswiederholung der CONF-Nachricht 400a einmal oder mehrere Male durchführt, möglicherweise mit einer höheren Leistung als bei anderen übertragenen Signalen, wenn die Bestimmungen dieses ermöglichen. Die CONF-Nachricht 400a kann auch aufgrund ihres geringen Informationsgehalts, den sie transportiert, unempfindlicher aufgebaut werden (z. B. rauschfester). Eine Möglichkeit besteht in dem Einsatz von fehlerkorrigierenden Codes (z. B. einem Wiederholungscode), was in dem Header der CONF-Nachricht 400a angezeigt wird.
-
Mit Bezug zu 5 ist eine andere erfindungsgemäße Ausführungsform dargestellt, bei welcher eine Übertragungsdateneinheit 112 in zwei oder mehr Teilen (Blöcken) übertragen wird, wobei jeder Block die vollständige Information über die Dauer/Länge der vollständigen Übertragungsdateneinheit 112, die Anzahl der Blöcke und andere relevante Parameter trägt. Wenn ein bestimmter Knoten vom Rauschen betroffen ist und den Header des ersten Blocks verpasst, kann der Knoten den zweiten Block empfangen und eine NACK bezüglich der gesamten Dateneinheit oder bezüglich des ersten Blocks absetzen. Jeder Block umfasst eine Information, wie viele Blöcke in der vollständigen Übertragungsdateneinheit 112 enthalten sind und seine Seriennummer, so das jeder Knoten bestimmen kann, ob er die vollständige Übertragungsdateneinheit 112 oder nur einige der Blöcke empfangen hat.
-
Bei dem in 5 dargestellten Beispiel empfängt und analysiert der Knoten C beide Blöcke, bestimmt aber, dass der Block 1 nicht korrigierbare Nutzlastdaten aufweist. Der Knoten D empfängt die Nutzlastdaten des Blocks 2, aber ignoriert den Block 1 (da der Header des Blocks 1 beschädigt ist, so dass der Knoten D ihn nicht erkennen kann). Der Knoten C und der Knoten D setzen beide eine gewöhnliche NACK ab. Der Knoten E empfängt keinen der beiden Blöcke, aber er erfasst die CONF-Nachricht 400a*, welche von dem Knoten D übertragen wird. Abhängig von der CONF-Nachricht 400a* des Knotens B überträgt der Knoten E eine NACK T2-Zeiteinheiten nach der CONF-Nachricht 400a* des Knotens B. Das Zeitverhalten kann derart eingestellt werden, dass der Ursprungsknoten nur einen Zeitschlitz bezüglich CONF-Nachrichten und einen Zeitschlitz für NACKs zu überprüfen hat, was den Overhead (Zuschlag) für das Netz verringert.
-
Obwohl in 5 eine einzelne NACK für die zwei Blöcke gesendet wird, ist es auch möglich, eine getrennte NACK (beispielsweise in einem separaten Zeitschlitz, in einem separaten Frequenzkanal oder in einem separaten Informationsbereich in der NACK) jedem Block zuzuordnen. Beispielsweise kann eine erste NACK identifizieren, ob der erste Block nicht korrigierbare Daten aufweist, und die zweite NACK kann identifizieren, ob der zweite Block nicht korrigierbare Daten aufweist. Da dies den Umfang der Daten beschränken kann, welche einer Übertragungswiederholung unterzogen werden müssen, kann dies die Steuerung, welche bezüglich der Knoten notwendig ist, vereinfachen. Wenn getrennte NACKs eingesetzt werden und jede einen separaten reservierten Zeitschlitz aufweist, erhöht dies jedoch auch den Overhead (die Kosten), welcher für die Übertragung erforderlich ist, was einen effektiven Datendurchsatz beschränken kann.
-
Mit Bezug zu 6 und 7 werden Beispielverfahren für eine Multicast-Übertragung beschrieben, welche einer bestimmten Zeitperiode zugeordnet ist, was auch als Senderecht (TXOP (”Transmission Opportunity”)) bekannt ist. Diese Verfahren richten sich auf ein Netz, welches eine Netzsteuerung (auch als ”Master” oder ”Domain-Master” bekannt) und mehrere untergeordnete Knoten (”Slave Nodes”) umfasst. Der Netz-Master regelt den Zugang der untergeordneten Knoten zu dem Netz und legt entsprechende Zeitintervalle fest, während welchen jeder Knoten Daten übertragen darf. Obwohl diese Beispiele mit den vorab diskutierten Protokollen kombiniert werden können, unterscheiden sich diese Beispiele darin, dass jeder Knoten einer Multicast-Gruppe durch die Netzsteuerung informiert wird, dass erwartet wird, dass er innerhalb eines bestimmten Zeitintervalls, welches für diesen Knoten reserviert ist, eine Dateneinheit empfängt. Die Knoten müssen bestimmen, ob tatsächlich eine Dateneinheit während des reservierten Zeitintervalls empfangen wird und falls dies der Fall ist, die Dauer der Dateneinheit bestimmen.
-
Dementsprechend zeigt die 6 ein Beispiel, bei welchem der erste Zeitschlitz 120 und der zweite Zeitschlitz 122 in mehrere Zeitschlitze unterteilt werden können, welche entsprechend für eine Übertragung durch verschiedene Knoten, welche dem Netz 100 zugeordnet sind, reserviert sind. Zum Beispiel weist der Knoten A einen ersten eigenen Zeitschlitz 122A auf, welcher exklusiv für eine Übertragung von ACK- oder CONF-Nachrichten oder Signalen durch den Knoten A reserviert ist. In ähnlicher Weise weist der Knoten A seinen eigenen zweiten Zeitschlitz 122A auf, welcher exklusiv für eine Übertragung von NACK-Nachrichten oder Signalen durch den Knoten A reserviert ist. Diese Art einer strukturierten Kommunikation kann die Steuerung innerhalb der Knoten im Vergleich zu den vorherigen Ausführungsformen vereinfachen, weist jedoch den Nachteil auf, dass diese Art einer gut definierten Struktur aufgrund des erhöhten Overheads, welcher für die möglicherweise große Anzahl von reservierten Zeitschlitzen notwendig ist, den Nachteil aufweist, dass sich ein geringerer Gesamtdatendurchsatz ergibt.
-
7 stellt ein anderes Beispiel dar, wobei der Knoten D erkennt, dass eine Dateneinheit 112a übertragen wurde, indem er nur die Präambel P erkennt, da die Übertragung der Einheit gemäß eines TXOP erfolgt, welches für die Dateneinheit, die der Knoten empfangen soll, bestimmt ist. Da jedoch der Header der empfangenen Dateneinheit 112a-3* beschädigt ist, weiß der Knoten D nicht, wann die Dateneinheit endet und weiß daher nicht, wann eine NACK zu senden ist. In 7 wird angenommen, dass eine ACK keine Dateneinheit wie in den vorherigen Fällen ist, sondern nur ein Signal, was in diesem Beispiel auch für eine NACK gilt. Die Verwendung eines Signals ist logisch ausreichend und kann einige Zeit auf dem Medium einsparen, da ein Signal typischerweise eine kürzere Dauer als eine Dateneinheit aufweist.
-
Ein einfacher Weg für den Knoten D zur Lösung des Problems, nicht zu wissen, wann die Dateneinheit endet, ist, eine vordefinierte Zeiteinheit TM zu bestimmen, welche von dem Start der empfangenen Präambel gemessen wird. Wenn nach der Präambel und vor dem Ablauf von TM keine Dateneinheit erfasst wird, kann eine NACK gesendet werden, nachdem TM abgelaufen ist.
-
Eine andere Möglichkeit für den Knoten D das Problem zu lösen, nicht zu wissen, wann die Dateneinheit endet, ist, kontinuierlich das ACK-Signal 118 zu überwachen. Wenn ein Knoten das ACK-Signal 118 erfasst, sendet er eine NACK T2-Zeiteinheiten, nachdem das ACK-Signal erfasst worden ist (NACK-1 in 7). Wenn kein ACK-Signal erfasst wurde, überwachen Knoten, welche die Dateneinheit nicht empfangen haben, NACK von den anderen Knoten, welche die Dateneinheit fehlerhaft empfangen haben (z. B. Knoten C in 7). Wenn ein Knoten auf diese Weise eine NACK erfasst, kann er entweder im Ruhezustand verbleiben oder sein eigenes NACK-Signal nach dem erfassten NACK-Signal übertragen (NACK-2 in 7). Bei praktischen Implementierungen können eine NACK und eine ACK dasselbe physikalische Signal sein. Wenn weder eine ACK noch eine NACK erfasst worden ist, kann der Knoten eine NACK nach der Zeiteinheit TM absetzen. Der Ursprungsknoten führt eine Übertragungswiederholung der Dateneinheit durch, wenn er das NACK-Signal erfasst.
-
Obwohl die dargestellten Beispiele eine begrenzte Anzahl von Übertragungswiederholungs-/Bestätigungs-Zyklen zeigen (beispielsweise einen Übertragungswiederholungs-/Bestätigungs-Zyklus 304), können weitere Übertragungswiederholungs-/Bestätigungs-Zyklen ausgeführt werden, um eine zuverlässige Datenübertragung zu ermöglichen. Darüber hinaus sei erwähnt, dass in einigen praktischen Implementierungen die Knoten vorteilhafterweise dynamisch zwischen einem Verhalten als Ursprungsknoten (z. B. Unicast-Ursprungsknoten- oder Multicast-Modus) und als Zielnoten (z. B. Proxy-Knoten und/oder ein anderer Zielknoten) zu beliebigen Zeiten während der Kommunikation wechseln können, so dass die Knoten Daten in einer koordinierten Weise austauschen können. Obwohl in dem dargestellten Beispiel ein einziger Proxy-Knoten dargestellt ist, können gleichzeitig mehrere Knoten jeweils ein Proxy-Knoten in dem Netz sein. Obwohl es nicht explizit in den Figuren dargestellt ist, umfasst eine Multicast-Übertragung auch eine Broadcast-Übertragung, wobei die Multicast-Gruppe alle Knoten in dem Netz (beispielsweise die Knoten B, C, D und E) umfasst.
-
Nachdem mehrere Beispiele von mehreren erfindungsgemäßen Systemen diskutiert worden sind, wird im Folgenden ein erfindungsgemäßes Verfahren mit Bezug zu 8 beschrieben. Die vorab beschriebenen Knoten umfassen geeignete Schaltungen, Logikschaltungen, Firmware, Software, Logik, usw., um die verschiedenen Verfahren und Funktionen, welche im Folgenden beschrieben und gezeigt werden, auszuführen, wobei die Verfahren und Funktionen nicht auf die im Folgenden beschriebenen Verfahren beschränkt sind. Obwohl die Verfahren im Folgenden als eine Reihe von Vorgängen oder Ereignissen beschrieben werden, sei darauf hingewiesen, dass die vorliegende Erfindung nicht durch die dargestellte Reihenfolge solcher Vorgänge oder Ereignisse beschränkt ist. Beispielsweise können einige Vorgänge erfindungsgemäß in einer unterschiedlichen Reihenfolge und/oder gleichzeitig mit anderen Vorgängen oder Ereignissen auftreten, obwohl es in anderer Form dargestellt und/oder beschrieben ist. Darüber hinaus müssen nicht alle dargestellten Vorgänge oder Ereignisse für ein erfindungsgemäßes Verfahren implementiert werden.
-
Gemäß der 8 beginnt das Verfahren 800 bei Schritt 802, bei welchem ein Proxy-Knoten unter mehreren Knoten, welche einem Netz zugeordnet sind, ausgewählt wird. Gemäß einiger Ausführungsformen wird der Proxy-Knoten beispielsweise ausgewählt, indem Kommunikationen in dem Netz analysiert werden und der Proxy-Knoten wird derart ausgewählt, dass er eine Kommunikationseigenschaft aufweist, welche geringer (schlechter) als die Kommunikationseigenschaft für die anderen Knoten ist. Beispielsweise kann der Knoten mit dem geringsten Signal-Rausch-Verhältnis relativ zu Kommunikationen von dem Ursprungsknoten als der Proxy-Knoten gewählt werden, während bei einer anderen Ausführungsform der Knoten, welcher während einer Trainingsperiode die meisten fehlerhaften Bits empfängt, als der Proxy-Knoten ausgewählt werden kann. Bei anderen Ausführungsformen werden mehr als ein Knoten als Proxy-Knoten ausgewählt.
-
Bei Schritt 804 wird eine Übertragungsdateneinheit von dem Ursprungsknoten an den Proxy-Knoten und andere Knoten einer Multicast-Gruppe übertragen. Im Fall einer Broadcast-Übertragung kann die Multicast-Gruppe alle anderen Knoten in dem Netz umfassen.
-
Bei Schritt 806 wird eine Nachweisnachricht selektiv von dem Proxy-Knoten (oder jedem Proxy-Knoten, wenn mehrere ausgewählt sind) zu den anderen Knoten der Multicast-Gruppe übertragen. Diese Nachweisnachricht wird abhängig davon, ob eine Empfangsdateneinheit, welche der Übertragungsdateneinheiten entspricht, korrekt an dem Proxy-Knoten empfangen worden ist, selektiv übertragen. Bei einer Broadcast-Übertragung kann die Nachweisnachricht zu allen Knoten in dem Netz übertragen werden.
-
Bei Schritt 808 wird abhängig davon, ob die Nachweisnachricht an einem ersten der anderen Knoten empfangen worden ist, eine erste negative Bestätigung selektiv von dem ersten der anderen Knoten zu dem Ursprungsknoten übertragen.
-
Bei Schritt 810 wird selektiv eine zweite negative Bestätigung von einem zweiten der anderen Knoten zu dem Ursprungsknoten übertragen. Diese zweite negative Bestätigung wird abhängig davon, ob die Übertragungsdateneinheit korrekt an dem zweiten Knoten empfangen worden ist, selektiv übertragen.
-
Während Beispiele der Offenbarung mit Bezug zu einer oder zu mehreren Implementierungen dargestellt und beschrieben worden sind, können Änderungen und/oder Modifikationen an diesen Beispielen vorgenommen werden, ohne den Geist und den Umfang der angehängten Ansprüche zu verlassen. Beispielsweise können bei einigen Ausführungsformen Merkmale als Hardware-Modul implementiert werden, während bei anderen Ausführungsformen die Merkmale durch geeignete Software-Routinen oder eine Kombination von Hardware und Software ausgeführt werden können. Bei Software-Implementierungen kann die Software von einem vom ”Computer lesbaren Medium” gelesen werden, was jegliches Medium umfasst, was daran beteiligt ist, Anweisungen einem Knoten oder einer digitalen Schaltung, welche dem Knoten zugeordnet ist, bereitzustellen. Ein solches Medium kann zahlreiche Formen annehmen, was nicht flüchtige Medien, flüchtige Medien und Übertragungsmedien einschließt, aber nicht auf diese eingeschränkt ist. Nicht flüchtige Medien umfassen Magnetscheiben, Flashspeicher, EEPROMs und optisch lesbare Scheiben, wie beispielsweise eine CD oder DVD, sind allerdings nicht auf diese eingeschränkt. Flüchtige Medien umfassen einen dynamischen Speicher, was ein SRAM oder ein DRAM einschließt, aber nicht auf diese beschränkt ist. Übertragungsmedien umfassen Koaxialkabel, Kupferdrähte, Glasfasern, usw.. Ein Übertragungsmedium kann auch elektromagnetische Wellen, beispielsweise Spannungswellen, Lichtwellen oder Funkwellen, umfassen.
-
Bezüglich der verschiedenen Funktionen, welche durch die vorab beschriebenen Komponenten oder Strukturen (Einheiten, Knoten, Vorrichtungen, Schaltungen, Systeme, usw.) ausgeführt werden, sollen diese Begriffe (einschließlich des Begriffs ”Mittel”), welche verwendet werden, um solche Komponenten zu beschreiben, jeder Komponente oder Struktur entsprechen, welche die spezifizierte Funktion der beschriebenen Komponente ausführt (beispielsweise funktionell äquivalent dazu ist), auch wenn sie nicht strukturell äquivalent zu der offenbarten Struktur ist, welche die Funktion in der hier dargestellten beispielhaften erfindungsgemäßen Ausführungsform ausführt. Eine Ausnahme liegt nur dann vor, wenn dies explizit beschrieben ist. Wenn ein bestimmtes Merkmal der Offenbarung nur bezüglich einer der mehreren Implementierungen oder Ausführungsformen offenbart worden ist, kann dieses Merkmal dennoch mit einer oder mit mehreren anderen Merkmalen der anderen Implementierungen oder Ausführungsformen kombiniert werden, wenn es für irgendeine bestimmte Anwendung wünschenswert oder vorteilhaft ist.