»It would be nice if the Food and Drug Administration stopped issuing
warnings about toxic substances and just gave me the names of one or
two things still safe to eat.«
– Robert Fuoss
15 Netzwerkgrundlagen
Nachdem Sie nun bereits einiges über das System wissen, werden wir uns ein weiteres wichtiges Thema, die Netzwerke sowie die Netzwerkkonfiguration, vornehmen. Typischerweise handelt es sich dabei um ein Kapitel, das man schon fertig im Kopf hat, bevor man beginnt, es zu schreiben, und bei dem einem trotzdem keine »vernünftige« Einleitung einfällt. Da wir eine solche Einleitung übersprungen haben, legen wir gleich los.
An dieser Stelle soll nicht ausführlich auf Netztheorien oder Ähnliches eingegangen werden. Wir möchten Ihnen in diesem Kapitel vielmehr die wichtigsten Kenntnisse bezüglich TCP/IP vermitteln, was all jenen, die von dieser Thematik zum ersten Mal hören, recht kompliziert erscheinen mag. Zudem wollen wir uns der grundlegenden und teilweise der fortgeschrittenen Administration widmen.
Als weiterführende Lektüren empfehlen wir Ihnen die Publikationen »Aufbau und Betrieb eines TCP/IP-Netzes« von Washburn und Evans sowie »TCP/IP Illustrated, Volume 1: The Protocols« von W. R. Stevens. Das Werk von Stevens setzt sich leider nicht mit IPv6 auseinander, [Fn. Was darauf zurückzuführen ist, dass das Buch bereits 1994 erschien und der Autor verstarb, bevor er eine neue Auflage schreiben konnte.] geht dafür aber intensiver als Washburn und Evans auf Protokolldetails unter Unix-artigen Systemen ein.
15.1 Grundlegendes zu TCP/IP
Computer kommunizieren über Netzwerksysteme miteinander. Diese Systeme benutzen verschiedenste Medien nach Maßgabe so genannter Protokolle. Diese Protokolle, die z. B. für die Steuerung des Datenflusses und die Zustellung der Daten über verschiedene Knotenpunkte (Router) zuständig sind, regeln wiederum den Transport der eigentlichen Nutzdaten.
TCP/IP stellt eine Sammlung solcher Protokolle dar und umfasst zahlreiche Standards. Die Buchstaben TCP stehen dabei für das Transportprotokoll »Transmission Control Protocol«, die Buchstaben IP für »Internet Protocol«. Doch mehr dazu später.
Schichtenmodell
Die Kommunikationsarchitektur ist dabei so aufgebaut, dass sie aus verschiedenen Schichten besteht. Schauen wir uns diese Schichten zunächst einmal an.
Unser Modell verwendet, wie auch wir im gesamten Buch, die englischen Namen für die einzelnen Protokoll-Schichten (Layer). Das hat ganz einfach den Grund, dass Sie so auch andere Bücher zum Thema TCP/IP leichter verstehen können, die oft in englischer Sprache verfasst sind. [Fn. Im oben genannten Buch von Washburn und Evans werden leider die deutschen Begriffe für diese Schichten verwendet, was erfahrungsgemäß bei Neueinsteigern für Verwirrung sorgt. Es existiert jedoch auch eine englische Originalausgabe. Es gelten folgende Übersetzungen: Network Access Layer = physische Schicht, Internet Layer = Internet-Schicht, Transport Layer = Transportschicht und Application Layer = Anwendungsschicht.]
Abbildung 15.1 Das TCP/IP-Schichtenmodell
Jeder Layer kommuniziert dabei mit seinem Gegenüber auf dem Zielsystem. Der Internet-Layer eines Rechners A kommuniziert folglich nur mit dem Internet-Layer des Kommunikationspartners B. Die Layer nutzen dabei jeweils die Dienste der darunter liegenden Schichten, so dass das Abstraktionsniveau, aber auch das Leistungsvermögen mit jeder Schicht ansteigt.
Der Vorteil dieser Architektur ist, dass verschiedene Layer auch verschiedene Aufgaben übernehmen und eine einzelne Schicht nicht die Verantwortung für die gesamte Kommunikation übertragen muss. [Fn. Die erste TCP-Implementierung hatte genau diese problematische Eigenschaft. Mittlerweile ist die Arbeitsfunktion von TCP jedoch auf den Transport-Layer beschränkt worden.]
[»]Für den Anwender sind diese Layer völlig transparent, er benötigt lediglich eine Endapplikation (beispielsweise einen Browser oder ein Mail-Programm), um auf die Dienste des Netzwerks zuzugreifen.
Abbildung 15.2 Kommunikation mit der Gegenschicht
15.1.1 Network Access Layer
Dieser Layer hat die Aufgabe, die einzelnen Bits über ein physisches Medium zum Zielsystem zu übertragen. Dies könnte zum Beispiel ein Crossover-Kabel sein, das an einer handelsüblichen Ethernet-Netzwerkkarte angeschlossen ist. Auf diesem Layer kommunizieren die Systeme mittels sogenannter Frames.
15.1.2 Internet Layer
IP Layer
Der Internet Layer hat die Aufgabe, Daten mithilfe des Internet-Protokolls (IP), das wir später noch genauer betrachten werden, zu versenden und zu empfangen. Zu diesem Zweck besitzt jeder Rechner eine eindeutige Adresse – die sogenannte IP-Adresse --, die ihn eindeutig in einem Netzwerk identifiziert. Im Gegensatz zum Network Access Layer erfolgt auf diesem Layer sogenanntes Routing.
Routing stellt sicher, dass Daten über verschiedene Netzwerke versendet werden können. Dazu werden Informationen benötigt, die angeben, über welche Router oder anderen Rechner man diese Netzwerke erreichen kann.
Die Informationen über die Wegfindung, also die Routing-Informationen, werden in den Routing-Tabellen der einzelnen Rechner abgelegt. Diese können entweder statisch vom Administrator konfiguriert oder über Routing-Protokolle dynamisch verwaltet werden.
15.1.3 Transport Layer
Die übergeordnete Schicht, der Transport Layer, hat die Aufgabe, die durch die Layer 1 und 2 zum Ziel beförderten Daten an die richtigen Ports zu senden. Dieser Layer stellt neben wichtigen Routing-Protokollen wie OSPF im Prinzip nur zwei herausragende Protokolle, TCP (Transmission Control Protocol) und UDP (User Datagram Protocol), bereit.
TCP verursacht eine etwas größere Datenlast als UDP und arbeitet dadurch zwar langsamer, verfügt aber über einen Fehlerkorrekturalgorithmus, der die Auslieferung der Segmente gewährleisten soll. UDP hingegen kümmert sich nicht darum, ob die von ihm transferierten Datagramme überhaupt ankommen. UDP wird daher für Systeme eingesetzt, die hohes Datenaufkommen bei ständig wechselnden, aber prinzipiell gleichen Daten verursachen. [Fn. Dies kann beispielsweise bei Statusdaten, die einmal pro Sekunde komplett übertragen werden, der Fall sein.]
Ein weiterer Unterschied zwischen TCP und UDP besteht darin, dass TCP verbindungsorientiert arbeitet. Das bedeutet, dass eine Verbindung vor einer Kommunikation zunächst aufgebaut und nach ihrer Beendigung wieder geschlossen werden muss.
15.1.4 Application Layer
Der sogenannte Application Layer, also die Anwendungsschicht, wird von den einzelnen Netzwerkprogrammen und -diensten verwendet. Diese stellen einen Dienst auf einem Port zur Verfügung (beziehungsweise greifen auf diesen clientseitig zu) und können über diesen Port senden und empfangen. Solche Applikationen benötigen jeweils ihre eigenen, in der Regel glücklicherweise standardkonformen Protokolle. Die wichtigsten davon sind: HTTP (Webserver <--> Browser), SMTP (Mailtransfer-Agent [MTA] <--> E-Mail-Client), FTP (FTP-Server <--> FTP-Client) und POP3 (POP3-Server <--> E-Mail-Client).
Im Application-Layer spricht man nicht mehr von Paketen und Segmenten, sondern von Messages [Fn. Zu Deutsch: Nachrichten.] (UDP) und Streams (TCP).
Zusammenfassung
Fassen wir zusammen: Ein Programm, das mit einem anderen Programm auf einem entfernten Rechner kommuniziert, benötigt ein Protokoll. Das Protokoll wird benötigt, damit die Kommunikation fehlerfrei funktionieren kann. Ohne ein wie auch immer geartetes Protokoll ist auch keine Form von Kommunikation möglich, ähnlich wie zwei Menschen, die keine gemeinsame Sprache sprechen, sich auch nicht (oder nur sehr eingeschränkt) unterhalten können.
[zB]Möchte man beispielsweise mit dem Browser auf einen anderen Rechner zugreifen, wird zunächst dessen IP-Adresse benötigt. Der eigene Computer baut nun über den Network Access Layer eine physische Verbindung zum Zielrechner auf. Dieser wird über eine Schnittstelle mit der besagten IP-Adresse angesprochen. Zu dieser Adresse senden die nächst-»höheren« Protokolle im TCP/IP-Protokoll-Stack (die sich nun keineswegs mehr um physische Details kümmern müssen) ihre Daten. Dabei handelt es sich beispielsweise um TCP oder UDP, also Protokolle des Transport Layers. Über diese kann der jeweilige Port des Servers bzw. Clients angesprochen werden. Bei einer Browser-Verbindung wird dafür das TCP-Protokoll und der Server-Port 80 verwendet. Im TCP-Paket ist zudem noch ein Paket des Application-Layers, in diesem Fall das HTTP-Protokoll, verpackt. Dieses enthält dann auch die eigentlichen Nutzdaten.
Ihr Kommentar
Wie hat Ihnen das <openbook> gefallen? Wir freuen uns immer über Ihre freundlichen und kritischen Rückmeldungen.