Rechnernetze
Home Nach oben

Binary Exponential Backoff

Bei einer Kollision tritt ein 'nicht persistenter' Algorithmus in Kraft, der BEB (Truncated Binary Exponential Backoff) genannt wird. Der Kanal wird in Zeitschlitze fester Länge (512 Bits = 64 Bytes oder 51,2 msec) eingeteilt, innerhalb derer eine sendende Station auch beim größten Netz sicher erkannt werden kann. Die Anzahl dieser Slots wächst bei jedem Fehlversuch um den Faktor 2. Jede sendebereite Station wählt zufällig genau einen dieser Slots zum Senden aus; wenn wieder eine Kollision auftritt, so wird das Intervall abermals vergrößert und der nächste Slot wird zufällig ausgewählt, usw. Nach zehn Kollisionen (=1024 Slots) wird deren Zahl jedoch nicht mehr vergrößert. Bei 16 Kollisionen wird die Übertragung abgebrochen und die Fehlerbehandlung höheren Schichten überlassen. Dieses Verfahren soll bei wenigen sendebereiten Stationen eine schnelle, bei vielen eine sichere Kollisionsauflösung garantieren.

Das folgende Ablaufdiagramm aus dem Standard zeigt den Sendeprozess unter Berücksichtigung des Fehlerfalls, d.h. falls ein Fehler auftritt ("half Duplex and collision detect") wird eine zufällige Zeit gewartet und dann noch einmal die Sendeprozedur durchlaufen. Die Anweisung "increment attempts" erhöht den jeweiligen Zähler, welcher wohl vor dem ersten Sendeversuch initialisiert werden muss.

Wichtig ist, dass der BEB sich vollständig in den Sendeprozess einfügt, also auch eine Trägerüberprüfung vor dem Senden beinhaltet ("deferring on?"). Außerdem ist dieses eine völlige lokale Sichtweise dieser einen Station, unabhängig vom Verhalten anderer Stationen. Stationen, die keine Kollision erlitten haben, nehmen an diesem Prozess also nicht teil, sondern senden sofort, wenn das Medium frei ist, wobei sie dadurch offenbar auch Stationen, die vorher eine Kollision erlitten haben, verdrängen können.