(upper index) (framed index) (bounce out)
[FASCINATION] / [LINKFOS] / [INTERNET TECHNIK]


Konzeption eines Rechnernetzes

Das ISO-OSI Referenzmodell.
Die grundlegenden Ideen, die man überall wiederfindet.
(Es gibt auch erstmal zum Einstieg eine vollkommen untechnische Einführung)

Wer mehr über die Grundkonzeption und die daraus resultierenden Hardware- und Softwareimplementierungen wissen will dem sei das Buch "Computernetzwerke" von "Tannenbaum" empfohlen. Es gibt aber auch eine Reihe anderer guter Bücher zu diesem Thema.
 

Das ISO-OSI Schichtenmodell

Das sogenannte ISO-OSI Schichtenmodell wurde erfunden bevor sich tatsächlich Netzwerkprotokolle etabliert hatten. Das führte dazu daß es zwar eine ganz gute Grundidee verkörpert aber heutige Netzwerke nicht 100% einordenbar sind.

Die Idee der Schichtung ist dabei, daß eine Schicht Dienste von der direkt darunterliegenden Schicht in Anspruch nehmen kann und selbst Dienste an die direkt über ihr liegende Schicht anbietet. Jede Schicht kommuniziert also nur mit der Schicht direkt über ihr und mit der Schicht direkt unter ihr. Die Übergangspunkte von einer Schicht zur anderen nennt man Schnittstellen und die angebotenen Leistungen mit ihren Eckdaten (also die Spezifikation der Schnittstellen) nennt man Dienste.

Protokolle hingegen laufen nur innerhalb einer Schicht ab und definieren Datentyp und Ablaufskonzepte. Jede Schicht hat dabei ein eigenes Protokoll, das die Kommunikation innerhalb der Schicht regelt.

Da bei Netzwerken die Idee ist das ein lokaler Rechner mit einem entfernten Rechner kommuniziert muß auch ein Protokoll sowohl auf dem lokalen Rechner wie auch auf dem entfernten Rechner vorhanden sein. Beide Protokollinstanzen (lokale und entfernte) kommunizieren miteinander. Diese Instanzen nennt man Peers. Es gibt also eine lokale Peer und eine entfernte Peer. Die Verbindung zwischen diesen Peers ist die sogenannte Peer-to-Peer Verbindung die über das Protokoll geregelt wird.

Um mit dem entfernten Peer zu kommunizieren bedient sich jede Schicht der darunter liegenden Schicht. Die Daten für den Peer werden also nicht direkt an diesen weitergegeben sondern nur immer an die nächste darunterliegende Schicht weitergereicht, die sich dann weiter darum kümmern muß. Die Peer-to-Peer Verbindung ist also eine rein logische (theoretische) Verbindung. Da jede Schicht jeweils Peers hat, gibt es auf den unterschiedlichen Schichten insgesammt eine ganze Reihe von solchen Peer-to-Peer Verbindungen. Jede Schicht kommuniziert mit ihrem entfernten Peer, aber gibt die Daten nur an die darunterliegende Schicht weiter und erhält
die Daten auch jeweils von der darunterliegenden Schicht.

Mit diesem Grundkonzept das ISO-OSI beschreibt ist es möglich die einzelnen Schichten flexibel und austauschbar zu gestalten. Da jede Schicht nur die direkt darüber und darunter liegende Schicht kennt und die Schnittstellen klar definiert sind ist es möglich einzelne Schichten durch andere oder bessere Schichten auszutauschen. Man kann ggf. auch einzelne Schichten weglassen oder neue hinzufügen wo benötigt.

ISO-OSI wurde konzipiert für ein Netzwerk bei dem ein "Netzwerk" an Verbindungen zwischen verschiedenen Rechnern besteht die jeweils direkt miteinander verbunden sind. Man stellt sich das am besten so vor: Es gibt einen großen Haufen Rechner. Manche davon sind direkt miteinander verbunden. Diese direkte Verbindung ist dann quasi ein Datenkabel das von dem einen direkt zu dem anderen geht. Die meisten Rechner sind nicht direkt miteinander verbuden, sondern nur indirekt über andere Rechner. Wenn also jetzt zwei Rechner kommunizieren wollen die nicht direkt miteinander verbunden sind müssen sie eine Verbindungen über einen oder mehrere Zwischenrechner aufbauen. Die Zwischenrechner leiten die Daten zwischen den zwei Kommunikationspartnern weiter. Die Kommunikation läuft also über eine Kette von Rechnern (Hosts/Hops) die jeweils direkt miteinander verbunden sind. Die direkten Verbindungen zwischen zwei Rechnern sind die sogenannten Punkt-zu-Punkt Verbindungen. Die indirekten Verbindungen (mittels Zwischenrechnern) zwischen zwei Rechnern die nicht direkt miteinander verbunden sind, nennt man Ende-zu-Ende Verbindung. Die Ende-zu-Ende Verbindung ist also die eigentliche Kommunikationsverbindung und die Pukt-zu-Punkt Verbindungen dazwischen sind nur die notwendigen Zwischenschritte dazu. Diese Zwischenschritte müssen geregelt und koordiniert werden, damit jeder der dazwischenliegenden Rechner die Daten richtig weiterleitet. Man geht davon aus daß jede Kommunikationsverbindung grundsätzlich eine Ende-zu-Ende Verbindung ist, selbst wenn sie auch gleichzeitig eine Punkt-zu-Punkt Verbindung ist. Sind also zwei Rechner die miteinander kommunizieren wollen, dann ist das lediglich ein glücklicher Spezialfall bei der eben weniger zu koordinieren ist. Man spricht dann trotzdem von einer Ende-zu-Ende Verbindung zwischen diesen zwei Rechnern, da sie ja die End-Partner der Kommunikation sind. Die Ende-zu-Ende Kommunikation wird dabei auch "virtuelle Verbindung" genannt da sie ja keinem physikalisch direkt verlegten Kabel entspricht sondern nur über diverse Zwischenstationen abgewickelt wird, die dann quasi eine Kabelverbindung zwischen den beiden Kommunikations-End-Partnern simulieren.
 

Die Schichten von ISO-OSI
 
 
 

Schichtname
Schichtnr.
Aufgaben
Anwendungsschicht
7
Ende-zu-Ende diverse Anwengunsaufgaben: 
Hier sollte der "Anwender" bzw. der Entwickler seine Kommunikationsprogramme aufsetzen können.
Darstellungsschicht
6
Ende-zu-Ende Uniforme Darstellung:
z.B. unterschiedliche Zahlendarstellungen konvertieren etc.
Diese Schicht sollte der darüber liegenden Anwendungsschicht diese Arbeiten abnehmen und häufig benutzte Funktionalitäten bereitstellen.
Sitzungsschicht
5
Ende-zu-Ende Sitzung/Session verwalten
die Idee: Man baut eine Verbindung mit einem entfernten Rechner auf, bleibt mit diesem Verbunden und kann neue zusätzliche Verbindungen zu ihm aufbauen um Daten zu übertragen etc. Die Sitzungsschicht sollte dabei Authentifizierung und die Verwaltung der verschiedenen Verbindungen abwickeln.
Transportschicht
4
Ende-zu-Ende Flußkontrolle, Fehlerkontrolle (virtuelle Ende zu Ende Verbindung)
Die eingehenden Daten werden geprüft und auf  Vollständigkeit und Reihenfolge geprüft (Sequenznummern). Fehlen Daten oder sind sie inkorrekt (Prüfsummen) werden sie vom entfernten Peer der Transportschicht erneut angefordert.. Außerdem wird dafür gesorgt daß der entfernte Peer die Daten nicht schneller sendet als man sie selbst verarbeiten kann (Flußkontrolle). 
Schicht 4 macht hier im Prinzip das selbe wie Schicht 2, jedoch kümmert sich Schicht 4 nur um die gesammte Ende zu Ende Verbindung. In der Tat ist es das unterste Protokoll das nur auf den zwei End-Rechnern ausgeführt wird.
Vermittlungsschicht
3
Punkt-zu-Punkt Routing, Überlastungsüberwachung
Dies ist die oberste Punkt-zu-Punkt schicht. Hier sitzten auf jedem Hop jeweils zwei Peers. Der eine empfängt die Daten, die dann geprüft werden und an den zweiten Peer übergeben werden um auf der nächsten Punkt-zu-Punkt Verbindung weiter geschicht zu werden. Die Aufgabe ist dabei die Daten in Koordination mit allen anderen beteiligten Rechnern über die "cleverste" Verbindung zu den jeweiligen Kommunikations-End-Partnern zu transportieren (Routing). Zusätzlich muß ein Auge darauf geworfen werden welche der zur Verfügung stehenden Punkt-zu-Punkt Leitungen (im Gesamtnetzwerk!) überlastet sein könnte und deshalb umgangen werden sollte (Überlastungsüberwachung / Load Shedding).
Sicherungsschicht
2
Punkt-zu-Punkt Flußkontrolle, Fehlerkontrolle, Rahmenerkennung
Die Schicht 2 macht fast das selbe wie Schicht 4, aber die Schicht 2 kümmert sich im Gegensatz zur Schicht 4 nur um die lokale Punkt-zu-Punkt Verbindung. Hier wird also geprüft ob die direkt über die eine Leitung übertragenen Daten korrekt und vollständig übertragen wurden (Fehlerkontrolle) und es wird sichergestellt daß der Sender am anderen Ende der Leitung nicht schneller sendet als der Empfänger die eingehenden Daten verarbeiten kann (Flußkontrolle). Das kann auch bedeuten daß sich Daten beim Empfänger stauen weil dieser über seine Ausgangsleitung nicht so schnell los wird, wie er sie geschickt bekommt. Ist also irgendwo in der Kette der Punkt-zu-Pukt Verbindungen ein langsamer Rechner so kann dieser die anderen Rechner in der Kette auch auf seine Geschwindigkeit herunterbremsen. 
Es existiert aber normalerweise nicht nur eine solche Kette an Punkt-zu-Punkt Verbidungen sondern mehrere die parallel laufen und durch die sich Engpässe teilweise umgehen lassen. Dies ist aber nicht Aufgabe der Sicherungsschicht, sondern der darüber liegenden Vermittlungsschicht (Schicht 3), die die Überlastungsüberwachung abwickelt.
Ein Problem um das sich aber sehr wohl die Sicherungsschicht kümmern muß ist die Erkennung des Rahmenanfanges, denn auf der darunterliegenden Schicht werden nur einzelne (unzusammenhängende) Bits übertragen. Die Sicherungsschicht muß dabei jetzt Struktur hineinbringen und erkennen wo Rahmen anfangen, selbst wenn mal einzelne Bitfehler drinnen sind.
Bitübertragungsschicht
1
Punkt-zu-Punkt Bits codieren
Hier wird geregelt mit welcher Spannung, welcher Länge und auf welchen Leitungen in welcher Weise die einzelnen Bits übertragen werden. Es werden hier nur einzelne Bits übertragen ohne daß deren Semantik (Bedeutung) irgendwie behandelt wird. Auf dieser Ebene gibt es keine Datenpakete mehr. 
Die Bitübertragungsschicht ist dem darunterliegenden Übertragunsmedium angepaßt und gibt an wie dieses benutzt wird. Bitübertragungsschicht, Hardware (aber auch die Sicherungsschicht) können bei jeder Punkt-zu-Punkt Verbindung gänzlich unterschiedlich aussehen. Es kann also einmal eine Funkstrecke und das andere mal eine Telefonleitung sein. Die Schichtung der Protokolle schottet die darüberliegenden Protokolle von allen Heterogenitäten ab.
(Hardware:
Physikalisches 
Übertragunsmedium)
--
Punkt-zu-Punkt (Die Leitung, das Kabel, ... das was man sehen und anfassen kann)

Bits, Rahmen, Pakete, TPDUs, ...

Auf der Bitübertragungsschicht werden wirklich nur Bits übertragen. Die Sicherungsschicht aber etabliert jetzt eine Struktur auf diesen Bits, die sich Rahmen nennt. Jeder Rahmen hat einen Anfang und ein Ende und enthält in der Mitte sogenannte Nutzdaten. Die Nutzdaten kommen direkt von der darüber liegenden Vermittlungsschicht und werden semantisch nicht interpretiert von der Sicherungsschicht. Die Sicherungsschicht kümmert sich also nur darum in dem Bitstrom den Anfang des Rahmens zu erkennen und die Daten des Rahmenanfangs (Header) und des Rahmenendes (Trailer) zu finden und zu interpretieren. Benötigt wird das, weil die Sicherungsschicht ja nicht nur Daten die sie von der Vermittlungsschicht erhält transportieren soll sondern sie soll diese ja vorallem sichern. Um Daten sichern zu können bedarf es aber einer gewissen Redundanz. Das bedeutet daß die Sicherungsschicht zusätzliche Daten einfügt, die eine Prüfsumme über die Nutzdaten darstellen. Stimmen nach der Übertragung die übertragene Prüfsumme und die aus den übertragenen Nutzdaten errechnete Prüfsumme überein, so wurde (höchstwahrscheinlich) alles korrekt übertragen. Stimmen die zwei Prüfsummen nicht überein so ist irgendwas (vermutlich) schief gegangen. Was genau schief gelaufen ist, kann man nicht mit Sicherheit sagen und deshalb werden die Daten einfach nochmal erneut angefordert, wobei auch die Prüfsumme nochmal neu übertragen wird. Um zu erkennen daß jetzt Daten erneut kommen (nachgereicht werden) müssen nun zusätzliche Informationen mit in den Rahmen gepackt werden (Sequenznummern). Außerdem braucht man noch Informationen mit denen jeweils dem Sender mitgeteilt wird ob der jeweilige Empfänger überlastet ist oder ob er genug Resourcen hat noch weitere Daten zu empfangen. Das alles steckt in der Rahmeninformation die die Sicherungsschicht selbst hinzufügt.

Jeder Rahmen enhält also neben den Daten die einem von der Verbindungsschicht übergeben wird zusätzliche Daten mit denen die Peers der Sicherungsschicht miteinander kommunizieren um sich zu koordinieren.

Auf der Verbindungsschicht läuft es ähnlich. Die Verbindungsschicht erhält ja ihre Nutzdaten von der Transportschicht und packt ihrerseits Informationen für die korrekte Adressierung und Routingkontrolle mit hinein, schnürt alles zu einem sogenannten Paket und gibt es an die darunter liegende Sicherungsschicht weiter.

Und auch die Transportschicht hängt schon eigene Informationen für ihre Peer to Peer Kommunikation mit an die ihr übergebenen Nutzdaten mit an, schnürt das zu einer sogenantnen TPDU (der Name ist mehr eine Notlösung, die aus dem Tannenbaum-Buch stammt).

Betrachten wir also alles mal zusammen:

Die Transportschicht bekommt Nutzdaten und kümmert sich nicht weiter drum was diese für eine Bedeutung haben (es sind für die Transportschicht nur irgendwelche beliebigen Bitfolgen). Die Tranportschicht hängt dann einen TPDU-Header an den der entfernte Peer auswerten kann und gibt die ganze TPDU (mit Header und Nutzdaten) an die darunterliegende Verbindungsschicht. Für die Verbindungsschicht ist die ganze TPDU aber keine TPDU sondern nur irgendwelche Nutzdaten (also beliebige Bitfolgen). Die Verbindungsschicht hängt ihrerseits einen Paket-Header an (der Informationen für ihre entfernte Peer enthält) und gibt das gesammte Paket (Paket-Header und Nutzdaten) an die darunterliegende Sicherungsschicht weiter. Die Sicherungsschicht hängt nun einen Rahmen-Header und einen Rahmen-Trailer an und gibt den gesammten Rahmen (mit den Nutzdaten) an die Bitübertragungsschicht. Der Bitübertragungsschicht ist ganz egal ob das irgendwie ein Rahmen ist, denn für sie sind das nur Nutzdaten, die sie allesamt in einen Bitstrom codiert und an ihre entfernte Peer schickt. Die Bitübertragungsschicht hängt dabei KEINE zusätzlichen Informationen an.

Entsprechend übergibt die Bitübertragungsschicht auf der anderen Seite alles wieder als Bits an die Sicherungsschicht, die jetzt den Ärger hat aus dem gleichförmigen Bitstrom den Rahmenanfang herauszufinden (was durch die Prüfsummen und die weiteren enthaltenen Informationen vereinfacht wird, aber vorallem viel mit Versuch und Irrtum zu tun hat). Die Sicherungsschicht entfernt ihren Rahmen-Header und ihren Rahmen-Trailer und gibt nur die Nutzdaten an die Verbindungsschicht. Diese Nutzdaten entsprechen jetzt natürlich genau dem Paket das der Sender Peer der Verbindungsschicht geschnürt hatte. Die Verbindungsschicht entfernt also den Paket-Header und wertet ihn aus und übergibt die Nutzdaten dann an die Transportschicht. Die packt die TPDU Nutzdaten aus und übergibt diese dann an die nächst höhere Schicht usw.

Dieses Anhängen von Steuerinformationen hat man in sehr vielen Bereichen. Man stößt zum Beispiel drauf wenn man Emails schickt. Die Email-Header sind nichts anderes als solche zusätzlichen Steuerinformationen, während der eigentliche Emailtext den Nutzdaten entspricht.

Einen wichtigen Punkt haben wir aber noch vergessen: TPDUs, Rahmen und Pakete basieren darauf daß man Informationseinheiten von endlicher Größe (in der Praxis gibt es meist Maximalgrößen) hat, aber oft will man Daten unbekannter Länge oder von sehr großer Größe (also deutlich länger als TPDUs, etc.) verschicken. Dazu muß der Nutzdatenstrom in einzelne Teile gehackt und anschließend wieder in der richtigen Reihenfolge und ohne Lücken zusammengesetzt werden. Dieses Zerhacken und Wiederzusammenfügen geschieht dabei eventuell auf mehreren Protokoll-Schichten, immer dann wenn die Daten länger sind als die maximal übertragbare Einheit.

Repeater, Bridges, Router, Gateways, ...

Eine Frage die man sich vielleicht bei der Beschreibung der TPDUs, Pakete und Rahmen gestellt hat ist die: Warum wird alles zichmal eingepackt und auf der anderen Seite dann wieder alles ausgepackt? Man könnte ja auch alles gleich auf einmal reinpacken (also in einem Schritt)??

Der Umstand mit den diversen Schichten hat aber schon seinen Sinn. Zum einen sollen die Protokolle eben austauschbar und übersichtlich bleiben und so zerlegt man alles lieber in mehrere Schichten. Zum anderen werden auch nicht immer alle Schichten durchlaufen. Dies findet in der Tat nur bei den jeweiligen Kommunikationsendpunkten statt. (Deswegen ist die Transportschicht auch mit Ende-zu-Ende bezeichnet, weil ihre Peers nur auf den jeweiligen Kommunikations-End-Partnern zu finden sind).

In einer Kette von Punkt-zu-Punkt Verbindungen gibt es eine Reihe von Zwischenstationen bei denen nur jeweils ein Teil der Schichten durchlaufen wird. Nehmen wir etwa einen Router (könnte ein normaler Host, also ein voll funktionsfähiger Rechner sein). Der Router ist dafür zuständig die eingehenden Daten an seinen Punkt-zu-Punkt Leitungen (von denen er viele haben kann), an andere Punkt-zu-Punkt Leitungen weiterzuleiten (sofern die Daten nicht für ihn selbst bestimmt sind). Er erhält also die Bits und durchläuft dann die Schichten 1, 2 und 3. Auf der Vermittlungsschicht kann er jetzt das Paket auspacken in dessen Header sich die Zielinformationen befinden. Er entscheided dann wohin die Daten weitergeschickt werden sollen, packt die Nutzdaten des ursprünglichen Paketes in ein neues Paket und übergibt das wieder der Schicht 2 (die es in einen neuen Rahmen packt) und es an die Schicht 1 für die durch den Router bestimmte neue Ausgangsleitung (Punkt-zu-Punkt Verbindung). Die Schichten 4, 5, 6 und 7 bleiben dabei völlig unangetastet und die entsprechenden Protokolle müssen auf dem Router eigentlich nicht existieren, außer er will selbst Daten empfangen oder schicken können.

Ein einfacher Router ist ein kleiner Kasten mit vielen Kabelanschlüsseln und blinkenden Lämpchen. Er kann nur routen und hat somit nur die Protokollschichten 1,2 und 3 installiert. Mehr braucht er auch nicht. Er ist nur dafür da wie ein Einweiser Daten die an seinen verschiedenen Leitungen ankommen auf entsprechende Leitungen weiterzuleiten.

Ein noch einfacheres Gerät ist die Bridge. Sie kennt und behandelt nur die Schichten 1 und 2. Sie nimmt also Daten an, prüft ob sie korrekt sind, verpackt sie in neue Rahmen und schickt sie weiter. Dies wird benötigt wenn man sehr lange Verbindungen zwischen zwei Hosts/Routern überbrücken will, denn die einzelnen Kabelsegmente können nur eine maximale Länge haben und die Fehler kommulieren sich eventuell. Also werden Bridges zwischengeschaltet die die Daten alle paar Kilometer auffangen, prüfen ob sie noch korrekt sind und sie ggf. korrigiert weiterschicken.
Man kann Bridges aber auch verwenden um verschiedene Teilnetzwerke, die unterschiedliche Schicht 2 Protokolle verwenden miteinander zu verbinden. Die Bridge übersetzt das eine Schicht 2 Protokoll dann in ein anderes Schicht 2 Protokoll indem sie den einen Rahmen auflöst und einen neuen Rahmen (entsprechend dem anderen Protokoll) generiert. Dabei hat die Bridge (wie auch der Router oben) für jede angeschlossene Leitung (und somit ggf. für jedes Protokoll) einen eigenen Peer pro Schicht. Der eine Peer entpackt den einen Rahmen und spricht das eine Protokoll. Der zweite Peer spricht das andere Protokoll und packt den Rahmen wieder ein. Die zwei lokalen Peers übergeben sich nur gegenseitig die Nutzdaten. Die Peer-to-Peer Kommunikation hingegen findet mit den entsprechenden entfernten Gegenstellen jenseits der entsprechenden Kabelverbidungen statt.

Ein noch einfacheres Gerät ist der Repeater. Er repeatet (wiederholt) nur die an der einen Seite eingehenden Daten auf der anderen Leitung. Er prüft die Daten nicht und kann auch nur mit einem einzigen Schicht 1 Protkoll arbeiten. Höhere Protokolle als Schicht 1 kennt er nicht. Er ist somit mehr ein Verstärker. Vorallem in Busnetzen (oft LANs) die hier noch nicht besprochen wurden und in ISO-OSI nicht vogesehen waren, kann man aber nicht beliebig viele Repeater einsetzen um eine Leitung zu verlängern. Andererseits kann eine Leitung selbst (ohne Repeater) nicht allzu lang sein, denn sonst wird das Signal zu schwach. Man braucht also Repeater um die Signalstärke aufrecht zu halten und die Signalverzerrung gering zu halten. Die Laufzeitverzögerung kann aber auch ein Repeater nicht kompensieren. Je länger eine Leitung wird um so länger brauchen die Daten (und umso länger braucht eine Bestätigung die vom Empfänger zurück kommt und dem Sender zeigt daß die Daten auch angekommen sind).

Als kleine Ausnahme zu dem hier gesagten gibt es manchmal auch noch sogenannte Gateways. Dadurch wird ein (nicht unbedingt genauer spezifiziertes) Gerät bezeichnet das zwei unterschiedliche Netzwerke (mit unterschiedlichen Protokollen) verbindet und dabei nicht nur die Schichten 1,2,3 sondern auch darüber liegende Schichten behandelt (also auch 4 oder 4 und 5, oder 4,5 und 6 oder 4,5,6 und 7). Das Problem ist dann daß hier die eigentlich vorgesehene Ende-zu-Ende Verbindung unterbrochen wird. Entsprechend muß ein Gateway das jeweilige andere Ende ggf. simulieren. Dabei kann es aber Probleme geben, denn ev. sendet der Gateway bereits eine Bestätigung zurück obwohl das eigentliche Ende die Daten noch garnicht bekommen hat und eventuell garnicht erreichbar ist. Das kann dann zu etwas seltsamen und oft etwas schwer interpretierbaren Verhaltensweisen führen, denn im allgemeinen kennt man ja nicht die ganze Topologie des dazwischenliegenden Netzwerks.
 

Netzwerktopologie

Die eigentliche Topologie heutiger Netzwerke ist nicht unbedingt Thema einer grundlegenden konzeptionellen Überlegung. Die großen Zusammenhänge des Internet in all seinen chaotischen Details ist sowieso kaum zu überblicken und wohl niemand kennt sie wirklich ganz. Es soll hier deshalb erstmal um die grundsätzlichen Muster und Gedanken gehen.

Fangen wir an mit einem komplettvermaschten Netzwerk: Das bedeutet daß jeder Rechner zu jedem anderen eine Direktverbindung (also ein Kabel) hat. Für n Rechner sind das also n*(n-1)*(1/2) Verbindungen. Die Zahl der Verbindungen steigt also quadratisch mit der Zahl der Rechner. Schon bei 100 Rechnern wäre man eben bei 4950 Verbindungskabeln. Deren Anschaffungs, Installation und Instanthaltung wäre äußerst kostspielig. Für solche komplettvermaschten Netzwerke wurde ISO-OSI auch nicht erdacht, denn ein komplett vermaschtes Netzwerk hätte ja ausschließlich Punkt-zu-Punkt Verbindungen ohne Zwischenrechner. Diverse Protokollschichten wären dann nutzlos.

Ein ganz praktikables Netzwerk ist ein sternförmig vermaschtes Netz. An eine zentrale Station sind direkt mehrere Rechner angeschlossen. Sämtliche Kommunikation läuft also immer über die zentrale Station, da jeder Rechner nur zu ihr eine Verbindung hat. Das spart sehr viele Kabel. Die zentrale Station hat aber sehr viel zu tun und wenn sie ausfällt dann geht garnichtsmehr.

Eine andere Idee ist das ringförmig vermaschte Netz: Die Rechner stehen in einem (gedanklichen) Ring und jeder Rechner kennt jeweils seine zwei Nachbarn im Ring. Jetzt gibt es immer zwei Verbindungsmöglichkeiten zwischen zwei Rechnern (rechts oder linksherum), von denen normalerweise eine die kürzere und eine die längere ist. Fällt an einer Stelle etwas aus macht das noch nichts, denn dann kann die längere Verbindungsmöglichkeit als Notlösung benutzt werden. Fällt hingegen an zwei Stellen etwas aus, dann trennt sich das Netz in zwei Teilnetze die keine Verbindung zueinander haben. Verbindungen innerhalb jedem dieser Teilnetze sind noch möglich, jedoch ist keine Verbindung zwischen den Teilnetzen mehr möglich.

Eine einfachere Variante des ringförmigen Netzes, die dem entspricht was nach Ausfall an einer Stelle entsteht, ist die pure lineare Verkettung von Rechnern. Jeder Rechner kennt seine zwei Nachbarn, aber ganz am Ende hängt jeweils ein Rechner der nur noch einen Nachbarn hat.

Aus dem sternförmigen Netzwerk läßt sich ein hierarchisches (oder eigentlich besser gesagt "baumartiges") Netzwerk weiterentwickeln. Dabei gibt es wieder einen zentralen Rechner und darum herum hängen direkt angeschlossen mehrere Rechner die wiederum direkt zu einer Reihe von Rechnern verknüpft sind. Ganz am Ende hängen Rechner die somit nur noch einen Nachbarn haben. Das hat also wieder Vor- und Nachteile. Man spart sehr viel Kabel, es gibt kein Kabel zuviel. Andererseits sind die Verbindungswege auch relativ kurz (kürzer als in einem ringförmigen Netz mit gleichvielen Rechnern). Ausfälle sind umso schlimmer je zentraler die Station ist die ausfällt. Das Netz zerfällt dann wieder in diverse Teilnetze.

Um solche Netzzerfälle in Teilnetze (auch netsplits genannt) zu vermeiden werden redundante Leitungen gelegt. Eine Möglichkeit wäre natürlich daß man einfach jede Station und jede Leitung doppelt auslegt. Man kann es aber oft besser machen, indem man redundante Leitungen legt und dabei Rechner direkt verbindet die vorher nicht direkt verbunden waren. Das hat den Vorteil daß einige Rechner dadurch topologisch gesehen näher zusammenrücken und sich somit im Netzwerk schneller erreichen können (mit weniger Zwischenstationen). Die Redundanz bringt also auch geringere Laufzeitverzögerung (und natürlich mehr Bandbreite). Fällt jetzt etwas aus geht nach wie vor noch alles, aber einiges eben etwas langsamer.
 

Bus-Netze, MAC-Zwischenschicht

Bisher ging es immer um Netze bei denen Leitungen genau zwei Rechner miteinander verbanden (einer an jedem Ende). Dabei sind die Kompetenzen klar aufgeteilt. Im allgemeinen gibt es auf der Leitung zwei Kanäle. Jeder der zwei Rechner sendet auf einem der Kanäle und jeder der zwei Rechner empfängt auf  dem anderen Kanal.

Die Verkabelung ist aber oft etwas aufwendig und gerade für LANs (lokale und somit oft kleinere Netzwerke) hat man sich etwas anderes ausgedacht: Man hängt mehr als zwei Rechner an ein und dieselbe Leitung. Diese Leitung ist dann ein sogenannter Bus (ein gemeinsames Verbindungsmedium für viele Rechner). Jedes Ethernet ist ein solches Busnetz. Die Leitung geht dabei oft einen ganzen Bürogang entlang und an jedem Rechner vorbei, wobei jeweils ein sehr kurzer Abzweig zu jedem angeschlossenen Rechner existiert. Die Sache ist einfach, unaufwendig und billig. Wird ein Rechner in der Reihe ausgeschaltet stört das nicht denn  er muß die Daten nicht weiterleiten, da sie sowieso schon immer an ihm vorbei gingen und er sie nur mitlesen konnte.

Der eine Nachteil ist, daß eine solche Leitung sehr exponiert ist (Jeder dessen Rechner angeschossen ist hat an seinem Rechner so ein Ding hinten drann stecken). Jeder kann somit auch die übertragenen Daten mitlesen (aber das ist sowieso ein Problem bei Netzwerken) und jeder kann drauf kommen irgendwo was auszustecken: Das aber ist fatal, denn wenn der Kabelstrang unterbrochen wird (auseinanderstecken) oder nicht alle Enden ordnungsgemaess terminiert (abgeschlossen) sind dann funktioniert die Übertragung im ganzen Kabelstrang nichtmehr (und dann ärgern sich sofort drei dutzend Kollegen die mit am selben Kabelstrang hängen).

Ein weiterer Nachteil der hier interessanter ist, ist die Sache daß jetzt sehr viele Rechner auf das gleiche Medium zugreifen wollen und dabei kollidieren können. Denn auf dem Bus-Netz hat nicht jeder seinen eigenen Sendekanal, schon allein deshalb weil unklar ist wieviele Rechner angeschlossen werden und weil es außerderm zu teuer wäre. Also müssen sich die Rechner einigen wer nun senden darf und wer warten muß obwohl er senden will. Diese Koordinination ist aufwendig und es gibt eine Reihe von Verfahren dazu (Aloha, CSMA/CD, Bitcountdown, Token-Bus, Token-Ring, ...).

Eine solche Koordinierung ist aber in dem ISO-OSI Schichten konzept das wir bisher gesehen haben  nicht vorgesehen und entsprechend gibt es auch keine Schicht die sich damit beschäftig oder deren Protokolle dies könnten. Somit wurde eine neue Zwischenschicht eingefügt, die sogenannte Schicht 2a, auch MAC-Zwischenschicht genannt (MAC = Multiple Access Control). Sie wickelt den Zugriff auf das Busnetz ab und sitzt zwischen der Bitübertragungsschicht (1) und der Sicherungsschicht (2) und verbindet deren beider Aufgaben und den Zugriff auf das Bus-Netz.

Bei Netzwerken die kein Busnetz haben fehlt diese Zwischenschicht natürlich. Sie entspricht auch nicht der ursprünglichen ISO-OSI Konzeption, wurde aber inzwischen zumeist in die entsprechende Aufstellung übernommen. (Dafür wurden die Schichten 5 und 6 oft wegrationalisiert, weil sie in der Praxis selten gebraucht wurden.)

Bei Mobilfunk spielen die Zugriffsverfahren ebenfalls eine Rolle. Bei Interesse sei deshalb hier ein Blick auf die Zugriffsverfahren im Bereich [Mobilfunk] empfohlen.


Weiter mit einer konkreteren Beschreibung von Protokollen, wie TCP/IP

Zur Übersicht "Internettechnik"


www.fascination.de [Interna]
Akutelles, Copyright, Impressum, Kontakt, Support, Gästebuch, Sitemap, Suchen, Credo, Aktionen, Legende, Statistik