Kollisionsvermeidung mit CSMA/CA
Das CSMA/CAProtokoll vermeidet die Möglichkeit von Kollisionen von Stationen, die sich das Medium teilen, nach dem Ereignis der Feststellung, dass der Kanal belegt ist. Bei CSMA/CD ist es so, dass alle, die ein Paket senden wollen, auf das Ende der aktuellen Sendung warten und dann sofort senden.
Ist das mehr als eine Station, kommt es sofort zu Kollision. Erst nach der Kolliison müssen die Stationen in einen Binary Exponential Backoff treten, bei dem sich das Intervall, aus dem die Verzögerungen gewürfelt werden, bei jeder Kollision ein und desselben Paketes verdoppelt, um so eine Verkehrsentzerrung herbeizuführen. Bei CSMA/CA wird direkt in eine Phase übergegangen, in der zufällig gewählte Verzögerungszeiten ablaufen, wenn das Medium belegt ist.
Die Zeitspanne, die der Zeitspanne, in der das Medium belegt ist, unmittelbar folgt, ist diejenige, in der Kollisionen mit der höchsten Wahrscheinlichkeit auftreten, besonders wenn die Auslastung des Systems hoch ist. Der Grund dafür ist auch hier, dass viele Stationen darauf warten könnten, dass das Medium frei ist, und dann alle mehr oder minder gleichzeitig versuchen, auf das Medium zu gehen.
Wenn das Medium frei ist, muss aber bei CSMA/CA nochmals eine zufällig gewählte Verzögerungszeit abgewartet werden, bevor man den Zugang zum Medium erlangt. Die MAC-Steuerung berechnet die zufällige Backoff-Zeit als Produkt einer zufälligen Zahl und der Slot-Time. Die zufällige Zahl ist natürlich nur eine pseudozufällige Zahl im Rahmen einer Gleichverteilung aus dem Intervall [0:CW], wobei CW das sog. Collision Window, eine Integer Zahl ist, die in einem Bereich liegt, der durch die MIB-Attribute aCWmin und aCWmax bestimmt ist.
Es sollte eine statistische Unabhängigkeit zwischen den Zufallszahlen innerhalb der aktiven Stationen bestehen. Die Slot Time findet sich ebenfalls in der MIB unter aSlotTime. Auch im CSMA/CA-Verfahren liegt der Gedanke des Binary Exponential Backoffs zugrunde. Man lässt nämlich den Wert von CW exponentiell ansteigen, wenn eine Station mehrfach den Verzögerungsalgorithmus durchläuft. Das minimiert erfahrungsgemäß die Kollisionen im Hochlastfall und sorgt so für einen unter diesen Bedingungen höchstmöglichen Durchsatz.
Bei geringer Netzlast werden die Stationen nicht gezwungen, lange zu warten, bevor sie ihre Frames aussenden dürfen. Beim ersten oder zweiten Versuch kann eine Station ihr Paket recht schnell loswerden. Ist die Netzlast hoch, hält das Protokoll die Stationen länger zurück und senkt so die Wahrscheinlichkeit, dass zwei Stationen kollidieren. Bei hoher Last steigt der Wert von CW auf relativ hohe Werte nach sukzessiven Retransmissionen und sorgt somit für einen nennenswerten Abstand zwischen zwei Stationen, die senden möchten. Der Mechanismus funktioniert gut, es kommt aber bei Hochlast zu substanziellen Verzögerungen bei den Stationen, die auf den Zugriff zum Medium warten.
Tatsächlich findet keine explizite Kollisionserkennung statt. Stationen „erkennen“ Kollisionen daran, dass nach einer gewissen Zeit keine Antwort in Form einer positiven Empfangsbestätigung kommt und versuchen nach Ablauf der durch das Zugangsverfahren gegebenen Zeitdauer eine erneute Sendung. Dabei werden sie mit großer Wahrscheinlichkeit wegen des gewürfelten Backoffs nicht wieder mit den gleichen Stationen kollidieren, aber ggf. mit anderen.
Insgesamt kann man also nicht davon sprechen, dass das System die Auslieferung von Datenpaketen in irgendeiner Weise garantieren könnte, noch dass es durch den Algorithmus selbst eine obere Schranke für die maximale Zeit vom Sendewunsch bis zur erfolgreichen Aussendung gibt.
weiter mit: Error Recovery
Artikelfiles und Artikellinks
(ID:2042611)