Das TCP/IP Schichtenmodell

Werbung
Das TCP/IP Schichtenmodell
Protokolle
Bei der TCP/IP Protokollfamilie handelt sich nicht nur um ein Protokoll, sondern
um eine Gruppe von Netzwerk- und Transportprotokollen. Da die Protokollfamilie Hardwareunabhängig ist, kann TCP/IP auf verschiedensten Netzwerktypen eingesetzt werden.
Bevor wir verstehen können, was überhaupt TCP/IP ist und auf diese Technologie eingehen, müssen wir herausfinden, was überhaupt ein Protokoll ist.
Protokolle sind Regeln, die den Nachrichtenaustausch zwischen zwei Kommunikationspartner regeln. Die Verletzung eines der vereinbarten Regeln kann
die Kommunikation erschweren oder sie sogar zum Absturz führen. Ein Beispiel
für ein zwischen Menschen geregeltes Protokoll "im täglichem Leben" finden
wir im Funkverkehr. Die Kommunikationspartner bestätigen den Empfang einer Nachricht mit "Roger", die Veränderung der Sprechrichtung mit "Over" und
das Beenden der Verbindung mit "Over and Out". So ähnlich ist auch die
Kommunikation in der Computerwelt, wenn man einen Datenaustausch zwischen zwei Computern erledigen will, die im Netzwerk miteinander verbunden
sind, müssen die Regeln der Kommunikation ganz klar sein.
Damit Rechner miteinander kommunizieren können, müssen bestimmte Regeln bezüglich ihrer Sprache vereinbart werden, die es Ihnen ermöglichen,
mit einander in Kontakt zu treten.
Die so festgelegten Sprachen heissen, wie schon oben erklärt, Protokolle.
Der Datenverkehr muss von mehreren Protokollen erledigt werden und nicht
nur von einem. In der Regel kommt eine Reihe von verschiedenen Protokollen
mit verschiedenen Teilaufgaben zum Einsatz. Diese Protokolle sind dann jeweils unterschiedlichen Aufgaben untergeordnet und sind in Form von Protokollschichten aufgebaut. Ein Protokoll ist z.B. für die Adressierung des jeweiligen Zielrechners zuständig. Ein anderer ist zum Beispiel für eine reibungslose
Übertragung verantwortlich. Weitere Protokolle regeln z.B. den Dateitransfer,
den Austausch von Internetseiten, etc.
Heutzutage kennt jedes Betriebssystem die für eine Datenübertragung notwendigen Protokolle. Alle Betriebssysteme, unabhängig davon welches es ist,
verstehen diese Protokolle und können miteinander Kommunizieren. So kann
man problemlos ein Netzwerk einrichten, auch wenn auf einem Rechner Linux
und auf einem anderen Windows installiert ist.
TCP/IP Schichtenmodell
Die Darstellung in dieser Grafik zeigt, dass eine Datenübertragung per TCP/IP
auf einem vierschaligen Modell darstellbar ist. Die Anordnung besteht darin,
dass jeweils eine Schicht die Dienste der darunter liegenden Schichte in anspruch nehmen kann. Von jeder Schicht aus werden Kontrollinformationen bei
Übertragungen aller Art an die nächste Schicht in Form eines Protokollkopfes
übergeben. Somit ist eine korrekte Zustellung der Daten möglich.
Ohne IP funktioniert kein TCP und ohne TCP funktioniert kein HTTP!
In der oberen Tabelle sehen wir 4 Schichten für 4 Funktionen. Die in vier
Schichten eingeteilten Protokolle bauen demnach aufeinander auf:
•
•
•
•
Applikations- bzw. Anwendungsschicht
Transportschicht
Vermittlungsschicht
Netzwerkschicht
Erklärungen zu den Schichten
Netzwerkschicht (network layer):
Auf der untersten Ebene existiert die Netzwerkschicht. Sie enthält Protokolle,
die dafür zuständig sind, den Rechner in ein bestimmtes Netzwerk einzubinden. So wird der physische Zugang zum Netz verwirklicht. Also ist hier festgelegt, dass zur Übermittlung von IP-Paketen ein Host über ein bestimmtes Protokoll ans Netz angeschlossen sein muss. Das TCP/IP-Schichtenmodell sagt allerdings nicht viel darüber aus, wie das genau geschieht.
Vermittlungsschicht (internet layer):
Ist für den Zugang zum Netzwerk gesorgt, kann nun der Informationsaustausch
in der Vermittlungsschicht durchgeführt werden. Die Vermittlungsschicht umfasst nur ein Protokoll namens IP (Internet Protocol). Dieses Protokoll ist für die
Adressierung im Netzwerk des einzelnen Rechners zuständig, insbesondere
aber auch für die Wegsuche (Packet Routing) zum Zielrechner über das
Netzwerk und die Vermeidung von Überbelastungen des Netzes. Die einzelnen Datenpakete werden in das Netz eingespeist und es wird dafür gesorgt,
dass diese beim Zielrechner ankommen. Es spielt aber keine Rolle, ob die Pakete in der abgeschickten Reihenfolge am Zielort ankommen. Dafür, diese
Pakete wieder in die richtige Ordnung zu bringen, ist ein anderes Protokoll zuständig.
Das Internet Control Message Protocol (ICMP) dient zum Austausch von Kontrollmeldungen zwischen Rechner.
Das IP Protokoll
Einsatzgebiete:
Das Internet Protokoll (IP) ist ein wichtiger Teil, der eine durchaus komplexe
Aufgabe bei der Übertragung von Daten übernimmt. Dieses Protokoll hat
ganz bestimmte Aufgaben, die es erledigen kann:
•
•
•
Adressierung
Routing
Fragmentierung
Adressierung:
Damit alle Teilnehmer eines Netzwerks miteinander störungsfrei kommunizieren
können, müssen alle Rechner mit einer speziellen Adresse versehen werden.
Das Internet Protokoll kann diese Informationen nach bestimmten Gegebenheiten auf bestimmte Weise umsetzen und realisiert auch zeitgleich diese
Vergabe. (Mit dem Vorgang der Adressierung werden wir uns in einer Späteren Lektion noch beschäftigen.)
Routing:
Nachdem jeder Rechner eine bestimmte IP-Adresse bekommen hat, setzt nun
die andere Teilaufgabe des Internet Protokolls ein. Damit die Daten ordnungsgemäß von einem zum anderen Punkt gelangen können, muss der Weg
berechnet werden. Dieses Routing legt fest, wie und durch welche Zwischenrechner (Router) die Daten zum Zielrechner gelangen können. (Wir werden
später noch Routingverfahren kennenlernen.)
Fragmentierung:
Fragmentierung ist auch ein wesentliches Bestandteil der Übertragung von
Daten. Diese Fragmentierung muss aus einem bestimmten Grund durchgeführt werden: Je nachdem welches Netz welche Netzwerktechnologie benutzt, variiert die die maximale Größe der Datenpakete. Es ist äußerst sinnvoll,
die maximale Größe auszunutzen. Es wirkt sich zeitsparend aus. Da jedoch ein
Router mehrere Netzwerke miteinander verbinden kann und jedes Netzwerk
eine andere Netzwerktechnologie einsetzen kann, muss die Möglichkeit bestehen, Datenfragmente umzufragmentieren, damit sie im einem anderen
Netzwerk auch angenommen werden können.
Betrachten wir die Fragmentierung genauer. Wenn die Daten an den Empfänger gesendet werden, ist in keiner Weise sichergestellt, dass die Datenpakete auch in der richtigen Reihenfolge ankommen werden. Aus diesem
Grund wird jedes Paket mit einer eindeutigen Nummer versehen. Der Empfänger-Rechner muss daraufhin die Daten in der richtigen Reihenfolge wieder
zusammensetzen. Diese als Reassemblierung bekannte Funktion übernimmt
das TCP.
Transportschicht (transport layer):
Die Transportschicht ermöglicht die Kommunikation zwischen Quelle und Ziel.
Auf dieser Ebene sind Protokolle wie UDP oder TCP (Transmission Control Protocol) definiert.
TCP ist ein zuverlässiges, verbindungorientiertes Protokoll, über das ein
Bytestrom von einem Rechner im Internet fehlerfrei einem anderen Rechner
zugestellt wird. Es zerlegt den eingehenden Bytestrom in einzelne IP-Pakete
und leitet diese an die Vermittlungsschicht weiter. Am Ziel werden die IPPakete vom empfangenden TCP-Prozess wieder zum Ausgabestrom zusammengesetzt und an die richtige Applikationsschicht weitergeleitet. TCP verwaltet auch die Flusskontrolle, um sicherzustellen, dass ein langsamer Empfänger nicht von einem schnellen Sender mit Nachrichten überschwemmt
wird.
UDP (User Datagram Protocol) ist eine unsichere Übertragung, die nicht garantieren kann, dass die versendeten Daten lückenlos beim Empfänger ankommen. Dieses Protokoll wird vorwiegend dann eingesetzt, wenn es darauf
ankommt, dass die Pakete schnell zugestellt werden und es nicht so wichtig
ist, ob es kleine Ungenauigkeiten bei der Zustellung gibt (z.B. Bei Film- oder
Sprachübertragung).
Das TCP-Protokoll
Zerlegung und Flusskontrolle:
Daten werden gepuffert (also zwischengespeichert). Ein Datensegment wird
erst gesendet, wenn:
• genügend Daten im Puffer vorhanden sind, um ein Segment zu füllen
• die gepufferten Daten ein gewisses "Alter" erreicht haben
• der Anwendungsprozess es explizit durch eine PSH-Flag verlangt. (Bei
dieser Flag handelt es sich um ein Bit, welches auf Null oder Eins gesetzt
werden kann. Je nach dem, wird das Segment sofort geschickt – auch
wenn es noch nicht voll ist.)
• Der Sender die Nachricht des Empfängers erhalten hat, dass das vorangehende Datenpaket angekommen ist. (Kommt diese Quittung
nicht, wird das Segment noch einmal verschickt.)
Vermeidung von Fehlern:
Da der Anwendungsprozess die korrekte Reihenfolge der Daten innerhalb eines Paketes nicht wiederherstellen kann, ist es wichtig, dass das Protokoll sicherstellt, dass die Daten korrekt am Zielort ankommen. Dies geschieht durch
folgende Massnahmen:
• Die gesendeten Bytes müssen bestätigt werden.
• Jedes gesendete Byte wird mittels einer Sequenznummer gezählt.
• Die Quittungen enthalten die Sequenznummer des als nächstes erwarteten Bytes.
TCP-Segment
Damit die oben beschriebenen Abläufe durchgeführt werden können, reicht
es nicht, nur die Nutzerdaten zu versenden. Jedes TCP-Segment hat einen fixen Kopfteil (Header), der protokollrelevante Daten z.B.
•
•
•
•
•
die Sequenznummer,
Sender und Empfänger-Port,
Quittungsnummer,
Angabe wie gross der Header ist und wo die Nutzerdaten beginnen,
Flags (SYN, ACK, PSH, …)
enthält. Dann gibt es auch noch ein variabler Kopfteil, welcher optionale Daten und Füllbits enthält. (Füllbits werden eingesetzt, wenn das Segment nicht
die geforderte Länge hat.) Neben dem Header werden natürlich auch die
Nutzerdaten mitgesendet. Vor dem TCP Header befinden sich noch zwei weitere Header, welche vom IT-Protokoll, bzw. von der Netzwerkschicht stammen.
TCP-Verbindungsaufbau
Der Verbindungsaufbau, bzw. die Beendung der Verbindung geschieht mittels des 3-Wege Handshakes:
Applikationsschicht (application layer):
In der Verarbeitungsschicht befinden sich alle höherschichtigen Protokolle.
Durch die bis hier behandelten Schichten haben wir dafür gesorgt, dass die
Daten Ordnungsgemäß übertragen werden. Aber wir haben nicht dafür gesorgt, zu erkennen, um welche Art von Daten es sich handelt. Dies erledigen
Protokolle aus der Applikationsschicht. Das sind z. B.:
• TELNET (virtuelles Terminal):
•
FTP (File Transfer Protocol):
• SMTP (Simple Mail Transfer Protocol):
• DNS (Domain Name Service):
• HTTP (HypterText Transfer Protocol):
Ziele der TCP/IP Entwicklung waren:
TCP/IP entstand mit dem Internet seit 1983. Die Ziele dieser Entwicklung der
Übertragung waren:
• Unabhängigkeit von der verwendeten Netzwerk-Technologie.
• Unabhängigkeit von der Architektur der Hostrechner.
• Universelle Verbindungsmöglichkeiten im gesamten Netzwerk.
• Keine zentrale Verwaltung, kein zentraler Knoten, dadurch höhere
Ausfallsicherheit
• Applikationsunabhängig, es kann also für verschiedenste Zwecke genutzt werden
• Standardisierte Anwendungsprotokolle.
Quellen:
• Andrew S. Tanenbaum: Computrnetzwerke. Pearson, 2003
• Skripte von Prof. Dr. Ulrich Nitsche
• TCP/IP Protokollfamilie, dimk.de/tcp-ip, 1. 9.2012
Zugehörige Unterlagen
Herunterladen