Universität Koblenz-Landau
Platzhalter
 
[Hauptdokument]
[Inhalt]
[Glossar]
[Links]
[Literatur]
 
Baustelle
Platzhalter Rund ums Web: Version 1.0 vom 12. Juli 2000, Autor: Andreas Pidde
 
Bottom

Transmission Control Protocol/Internet Protocol (TCP/IP)

Top Bottom

Einleitung

Das Transmission Control Protocol/Internet Protocol (TCP/IP) ist eine Weiterentwicklung des Network Control Protocols (NCP) der frühen Internet-Installationen. TCP/IP wurde anfangs von Vinton G. Cerf und Robert E. Kahn entwickelt. Inzwischen sind eine Vielzahl an Personen an der Weiterentwicklung und Pflege der Protokolle beteiligt.

TCP/IP ist eine Protokollfamilie, die den Nachrichtenaustausch zwischen den in Netzwerken verbundenen Computern (Hosts), sowie den durch Gateways untereinander verbundenenen Netzwerken (Internet) regelt. Alle Computer, die an das weltweite Internet angeschlossen werden sollen, müssen das seit 1983 offiziell für das Internet eingesetzte TCP/IP als Netzwerkprotokoll verwenden.

Definiert werden alle Protokolle (die Protokolle, die ein Host verwendet sind normalerweise in einer Datei protocol zu finden) von TCP/IP über die Request For Comments (RFCs). Momentan wird die Version 4 (IPv4) des Protokolls verwendet, die Version 6 (IPv6) soll in nicht allzuferner Zukunft eingesetzt werden.

Top Bottom

Vernetzung

TCP/IP-(Inter)netzwerke sind hierarchisch aufgebaut. Lokale Netzwerke (Local Area Networks, LANs) sind in regionalen Netzwerken vernetzt und diese wiederum in überregionalen Netzwerken. Die lokalen Netzwerke können bei Bedarf in noch kleinere Netzwerke (Subnetze) aufgespaltet werden.

Die Hosts sind über Netzwerkadapter innerhalb eines Netzwerks verbunden, über ein Gateway ist ein lokales Netzwerk mit einem übergeordnetem Netzwerk verbunden. Die Leitungen zwischen den Netzwerkknoten (Nodes) mit denen die Netzwerke untereinander vernetzt sind (Backbone, Datenautobahn) sind redudant, so dass Leitungsausfälle und Daten-Staus normalerweise dynamisch umgangen werden können und der Datenverkehr bei Teilausfällen erhalten bleibt.

Ein Datenstrom zwischen zwei Rechnern wird in einzelne Datenpakete (Datagramme) zerlegt, die dann unabhängig voneinander unabhängig als Rahmen (Frames) innerhalb der Netzwerke oder bei Bedarf über das Internet verschickt werden (verbindungslose, paketorientierte Datenübertragung).

Jeder Netzwerkadapter bekommt (mindestens) eine eindeutige Adresse zugeordnet, die IP-Adresse oder Internetadresse. Anhand dieser Adresse können Datenpakete über die verbundenen Netzwerke zu einem bestimmten Netzwerkadapter geleitet werden - dieser Vorgang wird als "routen" bezeichnet. Bestimmte Routing-Protokolle, z.B. das Routing Information Protocol (RIP), werden für die richtige (Um)leitung der Datenpakete verwendet. Rechner mit mehreren Netzwerkadaptern, die Datenpakete weiterleiten, werden Router genannt - d.h. Gateways und Nodes sind Router.

Die Netzwerkadapter haben eine eindeutige, normalerweise vom Hersteller vergebene Nummer (MAC-Adresse), mit der sie im lokalen Netzwerk identifiziert werden können. Die Zuordnung der IP-Adresse zur MAC-Adresse wird durch das Address Resolution Protocol (ARP) in einem lokalen Netzwerk geregelt. Anhand der MAC-Adresse kann ein Netzwerkadapter entscheiden, ob ein Rahmen (der Rahmen enthält wiederum ein IP-Paket) für ihn bestimmt ist. Mit dem Reverse Address Resolution Protocoll (RARP) kann eine IP-Adresse einer MAC-Adresse ausfindig gemacht werden.

Top Bottom

Das Schichtenmodell

Die einzelnen Protokolle von TCP/IP werden in Schichten (in dem TCP/IP Protokoll-Stack) angeordnet. Zwar gibt es das aus sieben Schichten bestehende, genormte Referenzmodell für eine Netzwerkarchitektur, das Open System Interconnection (OSI) Modell, TCP/IP ist jedoch älter als dieser Standard und wird häufig in nur vier Schichten (zusätzlich der physischen Hardware-Schicht) dargestellt, auf die sich die einzelnen Protokolle verteilen. Protokolle sind in Unterprogrammen oder einzelnen Prozessen realisiert, deren Instanzen Nachrichten über eine vorgegebene Struktur an Protokoll-Instanzen der gleichen Ebene senden. Dieses Versenden geschieht durch das Weiterreichen der Daten an Protokolle der nächst tieferen Ebene über eine vorgegebene Schnittstelle. Dienste einer Ebene können hierzu jeweils die Dienste der nächst tieferen oder der gleichen Ebene (innerhalb des gleichen Protokoll-Stacks) verwenden. Die Schnittstelle verbirgt die Implementierungsdetails einer Ebene.

OSI - TCP/IP
Abb.: OSI und TCP/IP Protokollschichten

In der Anwendungsschicht (Application Layer) von TCP/IP finden sich die Protokolle, die eine direkte Schnittstelle zu Anwendungsprogrammen oder für eine Anwendungs-Programmierschnittstelle (Application Programming Interface API) definieren. Beispiele sind das Hypertext Transfer Protocol (HTTP) zum Übertragen von Web-Dokumenten, das Simple Mail Transfer Protocol (SMTP) zum Versenden von Nachrichten. Auch das Domain Name System (DNS) (manchmal auch Domain Name Service genannt) zur Zuordnung von IP-Adressen zu lesbaren Namen ist in der Anwendungsschicht angesiedelt.

Das OSI-Modell unterteilt diese Schicht in Anwendung (Kommunikationsdienste), Präsentation (Syntax der Information und Datendarstellung - z.B. wäre das MIME Protokoll, das das Format einer E-Mail beschreibt, auf dieser Ebene) und Sitzung (Organisation eines Dialogs zweier Programme).

Die Transportschicht (Host-to-Host Transport Layer) beinhaltet die Protokolle, die den Datentransport von Endsystem zu Endsystem aufrechterhalten. Bei TCP/IP sind das hauptsächlich das Transmission Control Protocol (TCP) und das User Datagram Protocol (UDP). Im Gegensatz zu TCP erwartet UDP keine Rückmeldung von dem angesprochenen Endsystem. Beim Datentransport über TCP spricht man deshalb auch über einem (gesicherten) Datenstrom, der in Segmente zerteilt wird, bei UDP über (ungesicherte) einzelne Nachrichten, die in Pakete aufgeteilt werden. Die Protokolle der Anwendungsschicht können sich je nach Aufgabe für eine der beiden Protokolle entscheiden.

Auf der Internet Ebene (Internet Layer) befinden sich die Protokolle, die das Versenden einzelner Datenpakete/Segmente als Datagramme von Endsystem zu Endsystem sicherstellen. Neben den verbindungslosen Datenübermittlungsdienst, dem Internet Protocol (IP), finden sich auf dieser Ebene ein Kontroll-Protokoll, das Internet Control Message Protocol (ICMP) zum Auffinden von Fehlern. Die Datenpakete werden hierfür über IP verschickt. Für ein Weiterleiten der Datenpakete durch das Internet sorgen die diversen Routing-Protokolle.

Die Netzwerk-Schnittstelle (Network Access Layer) bietet eine einheitiche Schnittstelle zum Netzwerkadapter. Hier werden die Pakete in die Rahmen des jeweiligen Netzwerkprotokolls gepackt. Beispiel Fiber Distributed Data Interface (FDDI), das Address Resolution Protocol (ARP) und Reverse Address Resolution Protocol (RARP), befinden sich auf dieser Ebene.

Protokolle auf der Hardware Ebene werden nicht in TCP/IP definiert, nur benutzt. Hier werden die fertigen Rahmen über eine Netzwerkkarte auf einem Medium zu einem Empfänger geschickt.

Top Bottom

Datenfluss an einem Beispiel

Im folgenden Beispiel soll an einer HTTP Anfrage get für eine bestimmte Ressource der Weg einer Nachricht durch die Schichten von TCP/IP verdeutlicht werden.

Ein Browser hat von einem Benutzer die Anweisung bekommen, die Seite <http://www.uni-koblenz-landau.de/index.html> zu laden. Der Aufbau des Uniform Ressource Identifiers (URI), eine generellere Form des Uniform Ressource Locators (URL), muss wegen der fehlenden Darstellungsschicht bei TCP/IP im Browser implementiert sein. RFC 2396 beschreibt den genauen Aufbau des Strings. Das Programm zerhackt nach dem Einlesen des URIs diesen in in seine Bestandteile: Protokoll (http), Interfacename (www.uni-koblenz-landau.de) und Resourcen-Bezeichner index.html.

Da die Adressen normalerweise von Benutzern eingegeben werden, die nicht unbedingt RFC 2396 auswendig kennen, handhaben Browser die Schreibweise (Syntax) der Adresse relativ lax und korrigieren sie bei Bedarf. Die Port-Nummer an den der Befehl geschickt werden soll, fehlt in diesem Fall und wird ergänzt. Die Nummer lautet 80, das ist die Standard-Nummer für das HTTP. Jedes Protokoll hat eine Nummer zugeordnet. Ein Anfrage kann so über den Protokoll-Stack an das Programm (Server), das den gewünschten Dienst bereit stellt, geleitet werden. In unserem Fall ein HTTP-Server.

Durch eine DNS-Anfrage (ebenfalls über ein Protokoll geregelt) wird die aktuelle IP-Adresse aus den Interfacenamen www.uni-koblenz-landau.de ermittelt: 141.26.200.8. Aus dem Resourcen-Bezeichner wird durch Voranstellen einer Methode (get) der HTTP-Befehlsstring generiert: get index.html. Der Browser kann nun diese Anfrage an die Zieladresse schicken. Übrigens: Da diese Befehle sowohl für Mensch als auch Maschine interpretierbar sind, kann man diese Anfrage auch 'von Hand' über eine Telnet-Verbindung an Port 80 zu einem Server schicken und schauen, was zurückkommt. Die zurückkommenden Pakete können anhand einer dynamisch zugewiesenen Empfangsportnummer der Applikation zugeordnet werden, die die Anforderung geschickt hatte. Durch die Werte IP-Adresse des Empfängers, Portnummer des Empfängers, Absendersadresse des Empfängers und der dynamisch zugewiesenen Portnummer des Absenders (Socket) kann ein über TCP Datenpaket eindeutig identifiziert werden.

...

Top Bottom

Verknüpfungsliste

Top Bottom

Weiterführende Links

Top Bottom

Literatur

Top
 

© 2000 Andreas Pidde, pidde@uni-koblenz.de
[Zu meiner Homepage]
Erstellt mit:
Ulli Meybohm's HTML Editor
Baustelle
 
[Hauptdokument]
[Inhalt]
[Glossar]
[Links]
[Literatur]
 
Platzhalter
Valid HTML 4.0!