|
|
|
|
|
|
| 1 Grundlagen Netzwerk | inhalt |
|
|
|
|
|
|
|
|
|
|
|
|
| 1.1 Einleitung | inhalt | hoch |
|
|
|
|
|
|
|
|
Für viele unserer Aktivitäten am Computer , wie z.Bsp surfen, mailen
chatten, ist ein Datenaustausch zwischen Rechnen Voraussetzung. Jeder
Aufruf eienr Wenseite bedeutet Datentransfer zwischwn in der Regel
sogar mehreren Rechnner. Auch die gemeinsame Nutzung von Dateien und
Programmen (oder etwas allgemeiner.: die Nutzung von Ressourcen eines Rechners
auch durch andere Rechner) ist nur mit Hilfe einer
funktionierenden Kommunikation zwischen Computern möglich.
Dieses Kapitel soll einen Einblick in diese Technik liefern und ein grundlegendes Verständinis hierfür vermitteln. Dabei sollen außer dem Interesse daran keine weiteren Vorkenntnisse notwendig sein. |
|
|
|
|
|
|
|
|
Voraussetzung ist, daß die Rechner auf irgendeine Art miteinander
verbunden sind. Dabei ist es am anschaulichsten sich diese Verbindung
als ein Kabel zwischen den Rechnern vorzustellen. Für nahe beieinander
liegende Rechner ist dies auch heute noch die am weitesten verbreitete
Methode. Dennoch sei erwähnt, daß kabellose Verbindungen ebenso
möglich wie erschwinglich sind.
Die einfachste Form eines (Computer-)Netzes stellt eine Verbindung zwischen zwei Computern mit Hilfe eines Kabels dar, die es ermöglicht Daten auszutauschen. Dies lieferet die Grundlage für den Aufbau von Netzwerken. Das Spektrum reicht von wenigen in einem Raum befindlichen Rechnern bis hin zu meheren Millionen auf die ganze Welt verteilten Rechnern. Über die geographische Anordnung der Netzrechner sind die folgenden Abkürzungen für Netze definiert: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Die wichtigtse Unterscheidung von Netzwerken ist die zwischen lokalen Netzen
und nichtlokalen Netzen. Zwar werden für die unterschiedlichen Netze auch teilweise
unterschiedliche Netzwerktechnologien verwendet (so weit werden wir
aber in diesem tutorial gar nicht vordringen), die Wichtigkeit dieser
Unterscheidung begründet sich aber vornehmlich aus der Nutzung. Sind
die Rechner innerhalb einer Wohngemeinschaft oder Firma miteinander
verbunden, so stellen sie ein lokales Netz dar. Besteht nun von einem
dieser Rechner eine Verbindung in das Internet, einem weltweiten
Verbund von Rechnern, so ist besagter Rechner sowohl Netzrechner des
lokalen (internen) Netzes als auch des nichtlokalen weltweiten Netzes.
Dieser Rechner stellt also auch eine Verbindung des lokalen mit dem
weltweiten Netz dar. Wenn es in lokalen Netzen durchaus erwünscht oder
sogar notwendig ist auch vertrauliche Daten auszutauschen sollen
solche Daten in der Regeln nicht weltweit bekannt sein. An dieser
Stelle wird klar, daß neben der Netzwerktechnologie, die ein
Datentransfer zwischen Rechnern und Netzen ermöglicht, die Frage der
Datensicherheit von erheblicher Bedeutung ist. Spätere Kapitel werden
sich mit dieser Thematik beschäftigen.
Bevor wir uns intensiver mit der Kommunikation zwischen Rechnern beschäftigen, wollen wir im folgenden Abschnitt noch kurz auf die Anordnung der einzelnen Rechner innerhalb eines Netzes eingehen. |
|
|
|
|
|
|
| 1.2 Netztopologie | inhalt | hoch |
|
|
|
|
|
|
|
|
Das einfachste Netz ist jenes, welches genau zwei Computer miteinander
verbindet. Beispiele hierfür sind:
O-----------------------------------------O
Netzrechner 1 Netzrechner 2
Da eine solche direkte Verbindung nicht mit weiteren Rechner geteilt wird, ist sie vergleichweise Abhörsicher und Effizient. Sie wird Punkt-zu-Punkt Verbindung genannt. Dabei ist es in der Regel notwendig, daß beide Rechner über dasselbe physikalische Gerät (Hardware), also etwa Modem, ISDN-Karte, serielle Schnittstelle oder auch Ethernetkarte (Netzwerkkarte), miteinder kommunizieren. Als Medium wird die Verbindung zwischen den Geräten (also in diesem Falle das Kabel) bezeichnet. Sind nun mehr als zwei Rechner über dasselbe Medium miteinander verbunden, so stellt dies eine Erweiterung der obigen Situation dar. Die geschilderte Voraussetzung an die Hardware muß demnach von allen beteiligten Rechnern erfüllt werden. Es eintsteh ein sogenannter Bus:
O O O O O
| | | | |
^----------^----------^----------^----------^
Ein Beispiel sind lokale Netze deren Netzrechner über eine Ethernetkarte (Netzwerkkarte) und Koaxialkabel (ähnlich dem Fersehkabel) miteinander verbunden sind. Für den Datenaustausch zwischen zwei Rechnern muß also der sendende Rechner nicht nur die Daten ins Netz schicken, sondern auch noch die Adresse desjenigen Rechners für den die Daten bestimmt sind hinzufügen. Alle Rechner hören das Medium (meist ein angeschlossenes Kabel) ab und nehmen die Daten dann auf, wenn sie an sie selbst adressiert sind. Senden zwei Rechner gleichzeitig Daten ins Netz, so kommt es zur Störung und die versendeten Daten sind für keinen Rechner mehr brauchbar. Dies wird von beiden Rechnern erkannt und führt zum Sendeabbruch. Nach einer Wartezeit versuchen die beiden Rechner erneut zu senden. Sind die Wartezeiten der einzelnen Rechner unterschiedlich so besteht durchaus Hoffnung, daß beide Sendungen früher oder später auch Ihren Adressaten erreichen. Werden die zu versendenden Daten nicht als ganzes sondern aufgeteilt in kleine Pakete verschickt, so erhöht sich die Chance für die einzelnen Pakete kollisionsfrei passieren zu können. Zwar wird in der Regel vor dem Versenden geschaut ob die Leitung frei ist und gegebenenfalls auf diesen Zustand gewartet, dennoch lassen sich durch diese Art der Vernetzung Kollisionen von Datenpaketen nicht gänzlich vermeiden. Nämlich genau dann, wenn eine Sendung bereits unterwegs aber noch nicht angekommen ist. Um nun drei oder mehr Rechner in einem Netz zu vereinigen ist es nicht unbedingt notwendig, daß, wie oben, jeder Rechner mit jedem anderen Rechner im Netz eine direkte Verbindung unterhält. Es ist möglich die Rechner sternförmig anzuordnen:
O O
\ /
\ /
\ /
O ------ O > Netzrechner und Verteiler
/ \
/ \
/ \
O O
Ein Rechner versendet Daten in kleinen Paketen an einen Zielrechner und versieht jedes DatenPaket mit Absender und Adresse. Dem Rechner in der Mitte, auch Verteiler oder Hub genannt, kommt eine Besondere Bedeutung zu. Er nimmt alle Datenpakete auf, überprüft die Adresse, verarbeitet die Daten falls er selbst Adressat ist oder leitet Sie an die angeschlossenen Rechner (und das sind ja alle) weiter. Die Situation ist ähnlich wie die des Busses. Alle Daten erreichen alle Rechner. Das heißt also wieder, zu jedem gegebenen Zeitpunkt darf sich nur ein Paket auf Sendung befinden, wenn nicht kommt es zu Kollision, die wie beschrieben beim Bus behandelt wird. Die langsamste Einzelverbindung zwischen Netzrechner und Verteiler bestimmt die Geschwindigkeit (datenübertragungsrate) des gesamten. Ist der als Verteiler fungierende Rechner in der Lage, empfangenen Daten nur an den in der Adresse vermerkten Rechner weiterzuleiten, so kann ein großer Teil der Kollisionen vermieden und die Belastbarkeit und Geschwindigkeit (kurz: die Performance) erhöht werden. Ein solcher Rechner wird Weiche oder Switch genannt. Es sind parallele Verbindungen und unterschiedliche Übertragungsraten realisierbar. Etwa Netzrechner 1 sendet an Netzrechner 3 mit einer Geschwindigkeit von 10 Informationseinheiten pro Sekunde und Netzrechner 2 sendet an Netzrechner 7 mit einer Geschwindigkeit von 100 Informationseinheiten pro Sekunde. (Eine Informationseinheit könnte etwa Megabit sein.) Bemerkung: Die hier als Verteiler beschriebenen Netzrechner sind im Allgemeinen keine Rechner im üblichen Sinne sondern Geräte, welche ausschließlich die Aufgaben "Empfangen und Weiterleiten von Informationen" bewerkstelligt. Hub's und Switches sind meist kleine nicht über die notendige Größe für die Anschlüße und die erforderliche Platine hinausgehende Geräte:
______________________
/ /|
+---------------------+ |
|o[==][==][==][==][==]|/
+---------------------+
Anschlußleiste eines Hub's
bzw. einer Switch
Eine weitere Möglichkeit für die Anordnung von Rechner in einem Netz ist die eines geschlossenen Ringes, bei der die Rechner kreisförmig miteinander verbunden sind.
-->
O----------O----------O----------O
| |
| |
O----------O----------O----------O
<--
Ein Beispiel sind sogenannte Token-Ring Netze. Ein umlaufender "Gutschein" zum Senden (leeres Token) kann von einem ihn erreichenden Netzrechner durch ein Datenpaket ersetzt werden. Der Zielrechner nimmt diese Datenpaket auf und sendet seinerseits eine Empfangsbestätigung an den Absender, der daraufhin ein leeres Token an den nächsten Computer im Ring sendet. Alle Daten durchlaufen den Ring in ein und derselben Richtung. Eine Datenkollision ist nicht möglich. Fällt einer der Rechner aus, so liegt das gesamte Netz lahm. Diese Netztopologie verliert immer mehr an Bedeutung und wird/wurde vorwiegend in größeren Firmennetzen (insbesondere Zusammenhang mit Großrechenanlagen) verwendet. Die Anordnung der Rechner in einem Netz und die damit verbundenen Spezifikationen liefern die Grundlage für den Datenaustausch zwischen Rechnern. Wie dieser Datenaustausch prinzipiell funktioniert ist Thema des nächsten Abschnittes. Quellen: |
|
|
|
|
|
|
|
|
|
| 1.3 Kommunikation und Adressierung | inhalt | hoch |
|
|
|
|
|
|
|
|
Daß und wie Rechner, die untereinander Daten austauschen wollen,
angeordnet sein müssen, sollte nun bekannt sein. Aber wie unterhalten sich zwei
Rechner miteinander? Einen grundsätzlichen Einblick soll dieser
Abschnitt vermitteln.
Betrachten wir vorab einaml ein ganz gewöhnliches Telephongespräch und die dafür notwendigen Voraussetzungen.:
Natürlich hinkt, wie jedes, auch dieses Beispiel. Sagen wir aber trotzdem, dieses Modell ist in der Lage, ein Telephongespräch grundsätzlich zu beschreiben. Gibt es an einer Stelle eine Störung, so ist die Kommunikation (im Falle 4. die sinnvolle Kommunikation) unterbrochen. Die in 1. - 4. beschriebenen Voraussetzungen bauen also aufeinander auf. Für die Situation der Kommunikation zwischen Rechnern könnten diese Voraussetzungen so formuliert werden:
Während sich bei einem Telephongespräch die Datenübermittlung in einen technischen Teil (1. u. 2. - Fernmeldetechnik) und einen nicht- technischen teil (3. u. 4. - die Personen am Telefongerät) unterteilen verhält sich dies für den Datentransfer zwischen Computern - natürlich - anders. Aber auch hier tragen jede der vier formulierten Aufgabenbereich zur Kommunikation bei. In der Computerwelt redet man von verschiedenen Schichten (Layern) die ihren Beitrag zur Datenübermittlung leisten. Īn diesem Sinne stellt jeder der oben genannten 4 Punkte eine Schicht dar. Das hier vorgestellte 4-Schichten Modell beschreibt den Datentransfer zwischen Rechnern und entspricht dem sogenannten "TCP/IP Refernzmodell". Es sei bemerkt, daß es noch andere zum Teil feiner unterteilte Modelle wie etwa das "Open Systems Interconnection (OSI)-Referenzmodell" gibt. Für die einzelnen Schichten müssen Regelungen getroffen werden, wie die Daten übermittelt werden und an welcher Stelle welche Informationen im gesendeteten bzw. empfangenen Datenstrom vorhanden sind. Diese Vereinbarungen werden "Protokoll" genannt. Auf der Grundlage dieses Modells wollen wir den Datentransfer und die Aufgaben und Funktionsweisen der einzelnen Schichten etwas grundlegender beleuchten. Zunächst soll aber mit dem bisherigen ein (noch nicht ganz korekter) Ablauf für die Kommunikation zweier Rechner beispielhaft formuliert werden: Ein Anwendungsprogramm, sagen wir ein Browser, wird aufgefordert ein bestimmtes Dokument (mit dem Namen "index.html") aus dem Internet (von dem Rechner namens "www.d-a-s-h.org") anzuzeigen. Dies passiert indem z. Bsp. die Buchstabenfolge "http://www.d-a-s-h.org/index.html" in die Adresszeile des Browsers eingetragen wird. Der Browser formuliert diese Anfrage im Rahmen der Vereinbarungen über das Protokoll namens HTTP ("Hypertext Transfer Protocol"). Dieses Protokoll ist ein Beispiel für eines aus der 4. Schicht. Diese Anfrage (für den Transfer aufbereitete Daten aus der 4. Schicht) wird der 3. Schicht übergeben. Diese erweitert die Daten gemäß den Vereinbarungen des TCP-Protokolls ("Transmission Control Protokoll") um weitere Informationen (z.Bsp. die Daten haben eine Länge von .. , bei den Daten handelt es sich um eine Anfrage nach einem Webdokument, etc ...) und übergibt diese an die 2. Schicht. Hier werden die Daten auf Grundlage der Regelungen des IP-Protokolls ("Internet Protocol") mit weiteren Information (z.Bsp. über den Weg den die Daten gehen sollen) aufbereitet. Von der ersten Schicht werden die Daten wiederum in einen je nach Typ des Adapters speziellen Rahmen gepackt (Protokolle auf dieser Schicht sind etwa "Ethernet", "DSL", oder "PPP") und versendet. ... Die Daten erreichen den Zielrechner auf der ersten Schicht. Der Adapter an dem die Daten ankommen ist nun in der Lage die Daten anzunehmen zu überprüfen und sie von den Informationen, die nur diese Schicht betreffen zu befreien. Da dies geregelt ist, nämlich in dem entsprechenden Protokoll dieser Schicht stellt das für den Adapter kein Problem dar. Die Daten werden an die nächst höhere Schicht weitergereicht. Auch die zweite Schicht, weiß mit den Daten umzugehen (Vereinbarungen über das IP-Protokoll), kann sie gemäß ihren Aufgaben überprüfen und an die 3. Schicht weitergeben. Entsprechend wird auch die 3. Schicht abgearbeitet und an das verantwortliche Anwendungsprogramm - in diesem Falle ein Webserver - weitergereicht. Steht dem Webserver das gewünschte Dokument zur Verfügung, so wird er es nach den Regeln des HTTP-Protokolls verpacken und an die darunterliegende Schicht weiterreichen. Wenn nicht wird er eine Fehlermeldung, wieder gemäß den Vereinbarungen des HTTP-Protokolls, an die unterhalb liegende Schicht weiterreichen. .....
Etwas allgemeiner und mit den üblichen Bezeichnungen versehen lässt sich der netzwerkbezogene Datenstrom für den Absender- und den Zielrechner so verdeutlichen: . - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -. | .--------------------. | | Anwendungsschicht | Head | Daten | | | ^------------------- ^ | | .---------------------------. | | Transportschicht | Head | Head | Daten | | | ^---------------------------^ | | .----------------------------------. | | Internetschicht | Head | Head | Head | Daten | | | ^----------------------------------^ | | .-----------------------------------------. | | Netzwerkschicht | Head | Head | Head | Head | Daten | | | ^-----------------------------------------^ | | | ^ | | senden | | | | v | empfangen | ^----------------------------------------------------------------^ Wir befassen uns zunächst mit den Voraussetzungen für die Adressierung der Daten und betrachten zwei miteinander verbundene Rechner. Im Grunde bräuchte es hier keine Adapteradressierung. Nur zwei Rechner sind miteinander verbunden, die von dem einen gesendeten Daten kommen automatisch bei dem anderen an. Nach dem zu grunde liegenden Modell sind die beiden unteren Schichten (Netzwerkschicht und Internetschicht) für das korrekte Ankommen verantwortlich. Während die jeweiligen Netzwerkschichten die Daten vesenden bzw. in Empfang nehmen müssen bleibt für die Internetschichten auf beiden Seiten nicht viel zu tun. Auf der Absenderseite stellt sich das so dar: Zielrechner ist der einzig verbundene Rechner. Die Daten sind also zustellbar und es braucht kein weiterer Weg zugewiesen werden. Die Internetschicht des Zielrechners stellt fest, dass sie gemeint ist und reicht die Daten an die nächst höhere Schicht weiter. Sind nun in einem Netz mehrere Rechner sternförmig über einen einfachen Verteiler (HUB siehe auch Abschnitt über Netztopologie) miteinander verbunden, so erreichen die von einem Rechner gesendeten Daten alle anderen Rechner die an den HUB angeschlossen sind. Für Absender und Adressat ändert sich zu der zuvor beschriebenen Situation nichts. Die Netzwerkschichten der anderen Rechner werden erkennen, daß die Daten nicht für sie selbst bestimmt sind und diese ignorieren. Es ist an der Zeit sich mit den Adressen eines Adapters intensiver auseinander zu setzen, um verstehen zu können, wie sich Rechner unterhalten können, obwohl sie nicht direkt miteinander verbunden sind. |
|
|
Ein kleiner Exkurs: "Bits und Bytes" |
|
|
Jedwede Information die von Computern bzw. Computerprogrammen
verarbeitet werden können, und dazu gehören natürlich auch die
Adressen, sind im Grunde eine Reihe (sehr) vieler Einzelinformationen,
die jeweils nur zwei Zustände kennen, sagen wir den Zustand "1" und
den Zustand "0". Diese kleinste Informationseinheit wird "Bit"
genannt. Wie kommt das? Fassen wir einen Rechner mal als ein Messgerät
auf, und so falsch ist das gar nicht, so könnten wir sagen, werden an
einem Kabel eine Spannung von 0 Volt gemessen, so bedeuted dies den
Wert 0 für ein Bit, liegen 5 Volt an so bedeuted dies den Wert 1.
Definiert man noch wie lange ein solcher gemessener Wert anliegen
muß, um ihn als 0 bzw. 1 zu interpretieren, so können
aufeinanderfolgende Information als eine Reihe von 0-len und 1-sen
interpretiert werden (also etwa 10011101). Nun ein einzelnes Bit
auszuwerten lohnt sich noch nicht wirklich. Die Auswertung könnte ja
nur zwei Möglichkeiten beinhalten. Für 8 aufeinanderfolgende Bits gibt
es aber schon 256 verschiedene Möglichkeitet. Wir könenn alle
Möglichkeiten nacheinander aufschreiben und durchzählen, etwa so:
8 einzelne Bits zusammengefasst werden ein "Byte" genannt. Dies ist die kleinste Einheit die von Computern ausgewertet wird. Eine Folge von 0-len und 1-sen, egal wie viele, ist die übliche Darstellung von Zahlen aus dem "Dualsystem" oder "Binärsystem" und werden als "Binärzahlen" oder "Binärcode" bezeichnet. Dies ist die Art von Information, mit denen ein Rechner gut umgehen kann. Wir hingegen denken im Zehnersystem ("Dezimalsystem"), indem die kleinste Einheit 10 verschiedene Möglichkeiten (nämlich die Ziffern 0,1,2,3,..,9) beinhaltet. Mit der Aussage: "Ein Raum hat "einseinsnulleinsnull" (= 11010) Quadratmeter Fläche" können wir nur schwer eine Vorstellung von der Größe gewinnen. Würde man sagen: "der Raum hat s e c h s u n d z w a n z i g (= 26) Quadratmeter Fläche", wäre das schon besser vorstellbar. Schreiben wir die obige Tabelle der 256 verschiedenen Möglichkeiten für uns etwas verständlicher:
| dual dezimal
-------------------------
1. | 00000000 0
2. | 00000001 1
3. | 00000010 2
4. | 00000011 3
... |
255. | 11111110 254
256. | 11111111 255
Wie können wir ein Byte ( also 8 aufeinanderfolgende Bits bzw. Nullen oder Einsen) in das uns umgängliche Dezimalsystem umrechnen? Ganz einfach: in der Tabelle nachschauen. Es gibt aber auch die Möglichkeit dies direkt zu berechnen. Für unser Zehnersystem (Basis 10) gilt ja für die Zahl 26 folgendes:
erster Wert vom Ende her = Einerstelle
| Basis Zahlensystem (=10) hoch 0
| |
| | zweiter Wert vom Ende her = Zehnerstelle
| | | Basis Zahlensystem (=10) hoch 1
| | | |
26 = 6 * 10^0 + 2 * 10^1
= 6 + 20
= 26
Betrachtet wird die Zahl vom Ende her und stellenweise nach "vorne" gegangen. Der Wert ist immer gleich der Ziffer der betrachteten Stelle, die Basis ist (im Zehnersystem) gleich 10. Die Hochzahl (Exponent) beginnt bei der zuerst betrachteten Stelle ( = letzte Stelle der Zahl) mit "0" und wächst für jede betrachtete Stelle um "1". Es wird die Zahl vom Ende her betrachtet und der Wert multipliziert mit der Basis hoch 0 für die Einerstelle bzw. Basis hoch 1 für die Zehnerstelle. Nehmen wir uns die Binärzahl "11010". Die Basis ist im Dualsystem "2". Gleiches Vorgehen wie im Zehnersystem liefert dann:
11010 = 0 * 2^0 + 1 * 2^1 + 0 *2^2 + 1 * 2^3 + 1 * 2^4
= 0 + 2 + 0 + 8 + 16
= 26
Für die Binärzahl "11010" wurden 5 Bits betrachtet. Ausgehend davon, daß die kleinste ausgewertete Einheit 8 Bits = 1 Byte umfasst ändert sich die Darstellung zu "00011010". Klar daß diese neue Darstellung am Wert der Zahl jedoch nichts ändert. Die Umrechnung von Zahlen aus dem Zehnersystem in das Binärsystem ist hingegen nicht mehr so einfach. Wir haben nämlich oben, ob bewußt oder nicht, mathematische Regeln basierend auf dem uns wohl bekannten Zehnersystem benutzt. Das ist für den umgekehrten Weg nicht mehr möglich. Aber ein Computer ist ja ein Rechner und weiß wie er mit einer Zahl aus dem Dezimalsystem wie etwa 26 umzugehen hat und nimmt uns in der Regel die Umrechnungen ab. Wir können uns also auch weiterhin im Dezimalsystem bewegen. Wir kommen nochmals auf unser Telephonbeispiel zurück. Möchten wir mit einer betsimmten Person telephonieren, so müssen wir die Nummer des entsprechenden Anschlusses kennen. Eine Telephonnummer setzt sich grundsätzlich aus zwei Teilen zusammen, der Vorwahlnummer und der Rufnummer. Unterschlagen wir, daß sich die Vorwahlnummer wiederum aus zwei Teilen, nämlich der Landes- und der Ortskennzahl, zusammensetzt so gleicht dies dem Prinzip der Nummern für Netzwekadapter eines Rechners. Eine solche typische Netzadresse könnte etwa "62.245.129.212" lauten . |
|
|
||
|
|
||
| Inhalt | hoch | nächstes Kapitel |
|
|
||