Kompendium

Seit fast zwei Jahren schreibe ich ein Buch, in dem ich alle Informationen aus meinen Schulungen und meinen Beratungen ausführlich erläutere. Inzwischen sind fast 800 DIN A4 Seiten zusammen gekommen und ich denke, ich werde die 1000 Seiten voll bekommen.

Und sollte sich ein Verlag finden, der das Buch dann auch raus bringt, werde ich gerne hier berichten.

Das Buch gliedert sich derzeit in 5 Hauptkapitel:

  • Grundlagen der Informatik
  • Betriebssysteme
  • Netzwerktechnik
  • Grundlagen der Programmierung
  • Leitfaden für angehende IT-Leiter

Hier eine kleine Leseprobe aus dem Bereich Netzwerktechnik:


Data Layer

Die Schicht 2 regelt, wie die Daten über das eigentliche Medium übertragen werden. Schicht 2 ist in der Hardware der Netzwerkkarte integriert.Für die Bustopologie gilt, dass immer nur ein Gerät senden darf. Layer zwei regelt nun, wie dieses Gerät bestimmt wird.

CSMA
Dafür kommt das CSMA Verfahren zum Einsatz. CSMA steht hier für Carrier Sense Multiple Access.
Dabei empfängt ein Gerät, das senden möchte zuerst auf dem Medium, das von Schicht 1 genutzt wird. Hier kommt bereits eine fundamentale Grundidee des Schichtenmodells zum Tragen. Schicht 2 kümmert sich nicht darum, ob die Daten per Koaxkabel, TP, LWL oder Funk übertragen werden. Schicht 2 übergibt die Daten an Schicht 1 und Schicht 1 kümmert sich um die Übertragung zum Medium. Daten, die von Schicht 1 empfangen, also am Kabel gemessen werden, werden Schicht 2 zur Verfügung gestellt, egal ob die Daten per Funk, Licht, Ton oder Strom empfangen wurden.
Beim CSMA prüft Schicht 2 also zuerst, ob gerade irgendjemand anders im Netz gerade Daten sendet. Nur, wenn niemand sendet, übergibt Schicht 2 seine Daten an Schicht 1 und Schicht 1 sendet die Daten über das angeschlossene Medium.
Somit wird verhindert, dass zwei Rechner gleichzeitig Daten senden. Andernfalls würden sich die Daten auf dem Kabel überlagern und gegenseitig aufheben.
Durch CSMA wird vor jedem Senden von Daten geprüft, ob nicht jemand anders sendet.
Bei größeren Netzwerken kann es allerdings passieren, dass zwei Rechner gleichzeitig senden möchten. Beide Rechner prüfen also in Schicht 2, ob gerade jemand sendet. Beide Rechner stellen fest, dass gerade niemand sendet und so senden jetzt beide Rechner. Es kommt zu einer Kollision.
Schicht 1 misst, dass hier die Bits nicht korrekt auf der Leitung übertragen werden und meldet dies an Schicht 2. CSMA/CD (CD steht für Collision Detect) erkennt eine Kollision und muss dafür sorgen, dass die Daten nochmals gesendet werden.
Alle beteiligten Rechner erkennen, dass es eine Kollision gegeben hat und die beiden, die senden wollten, müssen nun ihre Daten erneut senden. Damit es nicht gleich wieder zu einer Kollision kommt, warten beide Netzwerkkarten eine kurze Zeit (zufällig verteilt im Bereich von wenigen Millisekunden) und versuchen CSMA erneut. Durch das unterschiedlich lange Warten erkennt der erste Rechner, dass gerade nicht gesendet wird und beginnt seinen Sendevorgang. Der zweite Rechner, der etwas länger warten musste, erkennt über CSMA, dass ein Rechner sendet und wartet, bis der Sendevorgang beendet ist und erst dann startet er seinen Sendevorgang.
Dadurch wird aber auch klar, dass der erste Rechner nicht beliebig lange Daten senden darf. Sonst würde er das gesamte Netzwerk für alle anderen Rechner, die auch senden wollen blockieren.
Die Daten werden daher auf Schicht 2 in einzelne Pakte, sogenannte Frames, aufgeteilt.
Schicht 2 verschickt immer nur einen Frame, wartet kurz und versucht dann, den zweiten Frame zu verschicken. Durch diese kurzen Unterbrechungen hat nun ein anderer Rechner die Chance, seinen Frame zu versenden. Für einen einzelnen Rechner wird dadurch die Datenübertragung verlangsamt, für das gesamte Netzwerk aber verbessert.
Gibt es in dem Netzwerk zu viele Rechner, so versuchen natürlich auch sehr viele Rechner zu senden. Es kommt vermehrt zu Kollisionen und die Daten müssen erneut versendet werden. Und jeder Rechner muss auch länger warten, bis er seinen Frame verschicken kann. Ein massiver Nachteil an Bustopologien.
Wenn ein Rechner über Schicht 2 einen Frame verschicken konnte, so werden die Bits dieser Daten der Reihe nach von Schicht 1 auf das Kabel angelegt. Für eine kurze Zeit fließt also Strom über das Kabel (eine 1) oder es fließt kein Strom über das Kabel (eine 0). Alle an dem Kabel angeschlossenen Rechner können diese Stromschwankungen messen und empfangen dadurch eine 1 oder eine 0.
In einem Computernetzwerk werden die Daten synchron übertragen. Alle angeschlossenen Geräte müssen die Daten in der Geschwindigkeit empfangen und verarbeiten, wie sie gesendet werden. Dazu müssen die Bits alle im gleichen Takt gesendet und empfangen werden. Allerdings gibt es keine Taktleitung, anhand derer die Empfänger bestimmen könnten, ob ein Bit oder zwei Bits gesendet wurden. Dazu muss jeder Sender am Beginn seiner Daten eine sogenannte Präambel mitschicken. Eine Abfolge von 0 und 1 Bits. Durch diese Präambel können sich nun alle Empfänger auf den Rhythmus des Senders einstellen und somit die Daten interpretieren.
Da aber alle Rechner diese Daten empfangen, muss definiert werden, für welchen Rechner diese Daten eigentlich bestimmt sind.
Daher erhält jeder Rechner eine eindeutige Kennung. Diese Kennung ist auf der Netzwerkkarte fest in die Hardware eingebaut und für jede Netzwerkkarte auf der ganzen Welt eindeutig. Die sogenannte MAC-Adresse (Media Access Code) wird vom Hersteller der Netzwerkkarte fest eingebaut. Die MAC-Adresse ist 6 Bytes lang. Die ersten drei Bytes sind die Herstellerkennung und die letzten drei Bytes sind die Gerätekennung dieses Herstellers.
Mobirise
MAC-Adressen werden typischerweise Hexadezimal angegeben. Der Hersteller ist selbst dafür verantwortlich, dass er die Gerätekennung eindeutig vergibt und es keine doppelten gibt.
Bei drei Bytes für die Herstellerkennung können somit 224 Hersteller verwaltet werden. Das sind etwa 16 Millionen Hersteller. Jeder Hersteller kann 224 Netzwerkkarten produzieren. Jeder Hersteller hat also maximal 16 Millionen Netzwerkkarten.
Diese Aufteilung kommt noch aus der Anfangszeit der Netzwerke, als man nicht damit gerechnet hat, dass jemals so viele Computer vernetzt sein würden. Man hat eher damit gerechnet, dass es sehr viele Hersteller von Netzwerkkarten geben könnte.
Heutzutage besitzen die meisten Hersteller mehrere Herstellerkennungen und können für jede dieser Kennungen 16 Millionen Netzwerkkarten produzieren.
Mit den MAC-Adressen können rein rechnerisch also 281.474.976.710.656 produziert werden. Das sind 281 Billionen Netzwerkkarten.
 
In einem Ethernetframe der Schicht 2 steckt also neben den eigentlich zu übertragenden Daten auch die MAC-Adresse des Empfängers. Und damit der Empfänger weiß, von wem die Daten kommen und an wen eine Antwort geschickt wird, steht auch die MAC-Adresse des Absenders mit drin.
 
Mobirise
Am Ende des Frames wird noch eine Checksumme übertragen. Anhand derer kann der Empfänger feststellen, ob es bei der Übertragung einen Fehler gegeben hat oder nicht. Fehler werden dann an die höheren Schichten gemeldet, die entscheiden müssen, was mit dem fehlerhaften Datenpaket passieren soll. Typischerweise steht die Präambel noch am Anfang jedes Ethernetframes.
 
Da neben den eigentlichen Daten (der payload) auch Protokolldaten (Header, Checksumme…) übertragen werden müssen, werden natürlich insgesamt mehr Daten übertragen, als man eigentlich übertragen möchte. Dieser Overhead sorgt für eine zusätzliche Netzwerkauslastung und sollte so gering wie möglich sein. Das erreicht man nur dadurch, dass die Anzahl der Bytes im Data-Block möglichst groß wird. Je größer aber der Data-Block ist, desto länger dauert die Übertragung und andere Rechner im Netz müssen entsprechend länger warten. Und sollte es zu einem Fehler kommen, muss immer der komplette Frame nochmals übertragen werden. Sind die Frames also sehr groß, müssen viele Bytes nochmals übertragen werden. Bei kleineren Datenblöcken müssen also auch weniger Daten nochmals gesendet werden und andere Rechner müssen auch nicht so lange warten, bis sie an die Reihe kommen.