Fachkonzept - Zugriffsregelung
Zugriffsregelung im Alltag
Wenn mehrere Personen über ein Thema diskutieren, dann kommt es oft zu Gesprächsführungskonflikten: Wer darf jetzt eigentlich reden?
Solche Konflikte werden mit einfachen Gesprächsregeln gelöst: Wenn jemand anderes spricht, fängt man nicht selbst an, dazwischenzureden. Man wartet also, bis eine kleine Gesprächspause entsteht (das kann durchaus zu Schwierigkeiten bei Dauerrednern führen). Man sollte keine langen Monologe führen und somit anderen Personen auch die Gelegenheit geben, sich am Gespräch zu beteiligen. Wenn zwei Personen gleichzeitig zu reden anfangen, dann hört man am besten auf und einigt sich (z.B. durch eine Geste), wer zuerst dran ist.
Kollisionen in Broadcast-Netzen
Wenn zwei Rechner in einem Broadcast-Netz gleichzeitig senden, kommt es zu einer Kollision.
Die Abbildung zeigt eine Situation, in der die beiden Rechner A und C gleichzeitig mit dem Senden eines Datenpaketes anfangen. Die Spannungen auf der Übertragungsleitung überlagern sich. Kompliziertere Situationen entstehen, wenn mehrere Rechner zeitversetzt mit dem Senden beginnen. Es entsteht (in aller Regel) eine Situation, bei der die auf dem Medium übertragenen Daten nicht mehr den gesendeten entsprechen. Solch eine Situation wird auch Kollision genannt.
Kollisionsvermeidung und Kollisionsbehandlung
Es gibt mehrere Strategien, mit dem Kollisionsproblem in Broadcast-Netzen umzugehen.
Einige Protokolle setzen auf Kollisionsvermeidung. Man erreicht das z.B., indem ein Rechner die Koordination der Sendevorgänge übernimmt oder das Senden reihum organisiert wird.
Andere Protokolle lassen Kollisionen zu und reagieren durch Regelungen zur Kollisionsbehandlung. Voraussetzung hierfür ist, dass Kollisionen von den beteiligten Kommunikationsteilnehmern erkannt werden. Im Folgenden wird ein Protokoll zur Kollisionsbehandlung (in vereinfachter Form) vorgestellt.
Ein Medienzugriffsprotokoll
Wir gehen davon aus, dass ein sendender Rechner gleichzeitig das Übertragungsmedium "abhören" kann. Ein solcher Rechner kann dann feststellen, ob die von ihm gesendeten Daten auch wirklich so übertragen werden.
In der in der Abbildung gezeigten Situation, in der Rechner A die Bitfolge 010.. (ohne Startbit) und Rechner C die Bitfolge 100 (ohne Startbit) gleichzeitig senden, würde Rechner A bereits beim ersten gesendeten Datenbit und Rechner B beim zweiten gesendeten Datenbit eine Kollision feststellen.
Das folgende Flussdiagramm verdeutlicht ein Protokoll, das auf Kollisionserkennung beruht.
Bevor gesendet wird, wird überprüft, ob das Medium überhaupt "frei" ist (d.h., ob nicht bereits ein anderer Kommunikationsteilnehmer sendet). Nur wenn das der Fall ist (d.h., wenn eine bestimmte Zeit (IFS) lang die Leitung den Pegelwert "low" bzw. 0 hat), wird ein Sendeversuch gestartet.
Während des Sendens wird das Medium abgehört. Tritt hierbei eine Kollision auf, wird das Senden sofort unterbrochen und ein Alarmsignal (JAM-Signal) gesendet. Der Empfänger registriert den Alarm und ignoriert die bereits gesendeten Daten des Datenpakets. Der Sender muss jetzt das Datenpaket noch einmal senden. Um weitere Kollisionen zu vermeiden, beginnt der Sender hiermit aber nicht sofort, sondern wartet eine zufallsgesteuerte (Back-off-) Zeit lang.
Relevanz der Kollisionserkennung
Heutzutage werden mehrere Rechner meist über Switches verbunden. Diese stellen getrennte Anschlüsse für jeden Teilnehmer bereit und leiten die Daten gezielt an die jeweiligen Empfänger weiter. Dadurch kann es nicht mehr zu Kollisionen kommen. Dennoch lässt sich die Problematik auch heute nicht vermeiden, wenn ein gemeinsames Medium genutzt wird. Dies ist z.B. in Funknetzen prinzipbedingt der Fall, weshalb hier ähnliche Verfahren zum Tragen kommen. (siehe z.B. CSMA/CA)
Quellen
- [1]: The CEJISS Administrative Board meeting - Urheber: CEJISS - Lizenz: Public Domain
- [2]: Flowchart CSMA-CD media access - Urheber: Christianw - Lizenz: Creative Commons Attribution-Share Alike 4.0 International