6.1 TCP/IP Schichtenmodell
und ISO OSI-Modell
TCP steht für
Transmission Control Protocol, IP für Internet Protocol. Zusammen
bilden sie den Hauptbestandteil der Protokolle, die Kommunikation über
das Internet möglich machen. Grundlage für das Funktionieren
der Kommunikation zwischen allen unterschiedlichen Typen von Rechnern im
Internet bildet das TCP/IP Schichtenmodell und weist somit gewisse Parallelen
zum ISO OSI -Modell auf. Abbildung 1 veranschaulicht den Zusammenhang,
aber auch die Vereinfachungen des TCP/IP- Protokollstapels. [6.1]
Hinter dem Schichtenmodell
verbirgt sich die Idee, daß höhere Schichten mit anderen Rechnern
kommunizieren können, ohne die Funktionsweisen der unteren Schichten
zu kennen. So reicht etwa eine Anwendung der obersten Schicht die Informationen
einfach an die darunter liegende Schicht (Transport- Schicht) weiter. [6.2]
Was ist also der
Unterschied zwischen TCP/IP und dem ISO OSI-Modell. TCP/IP ist wesentlich
älter und im militärischen Bereich entstanden während es
sich bei dem OSI-Modell um ein abstrahiertes Modell handelt. Die Entscheidung
TCP/IP im Internet als Standard zu etablieren, hängt hauptsächlich
damit zusammen, daß bereits eine große Anzahl Rechner TCP/IP
zu der Zeit benutzt haben. Insbesondere in Unix-Systemen waren TCP und
IP als Kommunikationsprotokolle bereits integriert. Für eine Umstellung
der bestehenden Systeme auf OSI gab es keine Übergangslösung.
OSI ist nicht abwärtskompatibel zu TCP/IP. [6.1]
Zunächst möchte
der Autor auf die einzelnen Funktionsweisen der Protokolle TCP bzw. IP
eingehen, um dann anschließend anhand eines Beispiels das Zusammenspiel
der verschiedenen Protokolle im Internet und die Vorteilhaftigkeit einer
Schichtenhierarchie zu erläutern.
6.1.1 TCP
TCP ist ein verbindungsorientiertes
und zuverlässiges Protokoll innerhalb der Transport- Schicht . TCP
hat zwei wesentliche Aufgaben: Erstens stellt TCP die Kommunikation mit
der höchsten Schicht, der Anwendung, her und zweitens kümmert
sich TCP um Fehlerbehandlung und einen gesicherten Datenfluß.
TCP erhält
einen Datenstrom, ermittelt den Empfänger und versucht eine Verbindung
mit diesem Host aufzubauen. Falls eine Antwort zurück kommt, sendet
es das nächste Paket und wartet wiederum auf Antwort. So gelangt ein
Paket nach dem anderen zum nächsten Rechner. Nachdem alle Pakete verschickt
worden sind schließt TCP die Verbindung. [6.3]
6.1.2 IP
Das Internet Protokoll
ist im Gegensatz zu TCP verbindungsunabhägig und unzuverlässig.
IP überträgt Datenpakete an andere Rechner und empfängt
diese unabhängig von deren Inhalt. Es ist unzuverlässig, da es
die Daten einfach an die darunterliegende Schicht, z.B. eine Netzwerkkarte,
übermittelt und sich nicht darum kümmert, ob die Daten auch ihr
Ziel erreichen. Man kann sich das IP als Bediener einer Morseschreibers
vorstellen, der Morsezeichen absetzt, aber sich nicht darum kümmert,
ob die Morsezeichen ankommen und ob die Morsezeichen am anderen Ende auch
verstanden werden. Alleine mit dem Internet Protokoll könnte natürlich
noch keine Kommunikation stattfinden.
Weiterhin teilt
das IP die Daten in mehrere kleine Pakete auf . Diese werden dann in die
ungefähre Richtung der Zieladresse weitergeleitet. Die Adressierung
des Internet Protokoll basiert auf den IP-Nummern (siehe Kapitel 6.2).
[6.2],[6.4]
6.1.3 Der Zusammenhang
zwischen TCP und IP
Alleine aufgrund
dieser beiden Protokolle scheint es noch nicht einsichtig zu sein, warum
eine vielzahl an Protokollen notwendig ist, um die Kommunikation im Internet
zu sichern. Dieses soll an dem Beispiel einer E-Mail erläutert werden.
Der Benutzer tippt
die Empfängeradresse und den Inhalt der Nachricht in einem beliebigen
E-Mail Programm ein . Soweit ist noch keine Netzwerkanbindung notwendig.
Wählt der Anwender jedoch die Funktion "Abschicken" aus, versieht
das Programm den Text mit einem SMTP-Header , der Empfänger- und Absenderadresse
enthält. Der Anwendung kann es jedoch egal sein, wie der Brief seinen
Empfänger erreicht, sie muß die Nachricht lediglich an die nächste
Schicht, das TCP weiterreichen. Das TCP, welches die Nachricht entgegen
nimmt, versieht sie (wie jede Schicht) mit einem eigenem Header. Sie kann
mit einem Postbooten verglichen werden, der herausfindet, ob der Zielort
exisitiert und diese dann auf das entsprechendende Transportmittel wirft.
Dieses Transportmittel kann im Fall der Post die Bahn, ein LKW, ein Flugzeug
oder ein Schiff sein oder mehrmals wechseln, auch darum muß sich
das TCP nicht kümmern, dafür gibt es das IP, welches die E-Mail
in mehrere kleine Pakete teilt und diese in Richtung Ziel weiterleitet.
Die physikalische Weiterleitung übernimmt hier jedoch die Netzwerkschicht,
z.B. das Ethernet. Das Ethernet versieht die Daten mit einem weiteren Header
und einer Prüfsumme am Ende des Datenteils, mit Hilfe derer die korekte
Übertragung festgestellt werden kann. Diese Übergabe zwischen
IP und Netzwerk findet mehrmals statt. Am anderen Ende nimmt der Postboote
(das TCP), die Teilpakete entgegen, schneidet den IP Header ab, bringt
diese in die richtige Reihenfolge und fordert verlorengegangene Pakete
erneut an. Der Empfängerrechner (Mailhost) schneidet erneut den TCP
Header ab und kopiert die E-Mail in das Postfach des Empfängers.
Ähnlich laufen
auch Verbindungen anderer Applikationen. Die Anwendung versieht das Programm
mit dem entsprechenden Anwendungsprotokoll. Ein WWW-Browser zum Beispiel
benutzt den Hyper Text Transfer Protocol (HTTP) Header oder ein Dateiverwaltungsprogramm
den File Transfer Protocol (FTP) Header, um Dateien aus dem Internet zu
übertragen. Mit dem Weiterreichen an die Transportschicht sind somit
die Aufgaben der Anwendungen erledigt. Alles weitere stellen die unteren
Schichten zur Verfügung. Somit ergeben sich folgende Vorteile aus
dem Schichten- Modell:
? Unabhängigkeit
der oberen Schichten von den unteren
? Neuerungen auf
einer Schicht ziehen keine Änderungen auf den anderen Schichten nach
sich, somit verringerter Programmieraufwand
? Erweiterungen
meistens leicht auf Grundlage der Anwendungsschicht zu realisieren
? Kommunikation
innerhalb inhomogener Netzwerke wird möglich
Allerdings steht
dem Internet Protokoll eine Erneuerung bevor, um der Entwicklung und multimedialen
Erweiterungen Rechnung zu tragen (siehe Kapitel 6.4). [6.1], [6.2], [6.5],
[6.7]
6.2
IP-Nummern
Bereits gefallen
ist der Begriff der IP-Nummern oder auch IP-Adressen. Es handelt sich dabei
um vier durch Punkte getrennte acht- Bit Zahlen, wie z.B. 129.13.95.1.
Sie sind weltweit eindeutig und stellen jeweils (genau) einen Rechner dar.
[6.7], [6.8]
Da diese kryptischen
Adressen schwer zu merken sind, wurde der Domain Name Service (DNS) eingeführt.
Somit steht die Adresse rzstud1.rz.uni-karlsruhe.de für 129.13.95.1.
Für die Umsetzung der numerischen IP-Adressen in Namen benötigt
man eine DNS Server. Er enthält eine Zuordnungstabelle von IP-Adressen
in Domain Namen. Die Domain Namen sind von hinten nach vorne strukturiert
aufgebaut. In diesem Beispiel steht die Endung de für Deutschland
und ist Top-Level Domain. Außer den Top-Level Domains für Länder
(z.B. nl für die Niederlande, uk für Großbritannien) gibt
es die Endungen mil für Militär, edu für Ausbildungsstätten,
org für Organisationen und com für kommerzielle Rechner. In letzter
Zeit sind einige neue Top-Level Domains, wie int für International
und eu für Europa ins Leben gerufen worden.
An zweiter Stelle
(von rechts) steht die Organisation, hier Universität Karlsruhe, oder
die sogenannte Domain. Weiterhin gibt es die Unterteilung in Sub-Domains
(hier rz für Rechenzentrum) und ganz vorne steht der Name des Rechners
(rzstud1).
[6.9], [6.10]
Zur Vereinfachung
des Routing (siehe Kapitel 6.3) sind die IP-Adressen in vier durch Punkt
getrennte Teile aufgeteilt. Somit können Organisationen
? Class-A-Adressen
(für sehr große Netze mit sehr vielen Hosts)
? Class-B-Adressen
(für mittelgroße Netzwerke) oder
? Class-C-Adressen
(für kleine Netzwerke mit weniger als 255 Hosts)
erwerben. Somit
muß nicht jeder Rechner bei jedem Router (siehe Kapitel 6.3) bekannt
sein, sondern lediglich die Domain, die dann wiederum einen Router besitzt,
der die Rechner innerhalb der Domain kennt.
6.3
Routing
6.3.1 Grundlagen
des Routing
Routing ist das Weiterleiten
von Informationen an den richtigen Rechner oder in die (ungefähr)
richtige Richtung. Laut Oberweis gibt es vier grundsätzliche Varianten
des Routing:
? vorbestimmtes Routing
(bei Einrichtung des Netzwerkes wird für jeden Knoten der Weg zu einem
anderen Knoten festgelegt)
? statisches Routing
(für jeden Knoten gibt es einen festgelegten nächsten Knoten
auf dem Weg zum Zielrechner)
? dynamisches Routing
(während der Übermittlung wird der Weg der Daten dynamisch bestimmt)
? adaptives Routing
(Weg wird entsprechend der aktuellen Netzwerkbedingungen festgelegt) [6.11]
6.3.2 Routing im
Internet
Denkt man an die
Ursprünge des Internet als militärisches ausfallsicheres Netzwerk
zurück, dann ist es einleuchtend, daß im Internet dynamisches
adaptives Routing vorherrscht. Den Hauptteil des Routing übernehmen
die Router, Rechner mit dem alleinigen Zweck des Weiterleiten von Daten
in die richtige Richtung.
Wie bereits erwähnt
sind die IP-Adressen in Class-A, B und C aufgeteilt, da aber der Adreßraum
knapp wurde, konnte das Identical Routing für IP-Adressen mit dem
gleichen Anfang nicht komplett beibehalten werden, sondern es wurde eine
Erweiterung eingeführt, die es ermöglichen auch unter der aktuellen
Version von IP (Version 4) die Adressen effizienter zu nutzen. Diese Methode
ist aber mit einem deutlich größerem Routing Aufwand verbunden.
6.4
Internet-Protokoll Version 6
6.4.1 Entstehung
und Notwendigkeit eines neuen Protokolls
Seit über drei
Jahren forscht die Internet Engineering Taskforce (IETF), das Gremium im
Internet, welches technische Standardisierungen vorantreibt, an einem neuen
Internet Protokoll unter dem Decknamen IP Next Generation (IPng) oder offiziell
IPv6, welches das bestehende IP der Version 4 ersetzen soll.
Die Notwendigkeit
zur Entwicklung eines neuen Internet Protokolls ergibt sich primär
aufgrund des Wachstums des Internets. Die von der IETF ins Leben gerufene
Address Lifetime Expectation (ALE) Arbeitsgruppe hat herausgefunden, daß
der Adressraum der 32-Bit IPv4 Adressen (IP-Adressen) nur noch bis zum
Jahr 2005 reicht. Die theoretisch mögliche Zahl von 232 eindeutigen
Rechnernamen wird zwar dann noch nicht erreicht sein, aber um den Routing
Aufwand einigermaßen in Grenzen zu halten, ist eine weitere Aufteilung
nicht sinnvoll. [6.15]
Zweiter wesentlicher
Punkt der Neuerung ist die Unterstützung neuer und zukünftiger
Technologien durch IP. Hinden beschreibt einen bevorstehenden Wandel des
Internets weg von der Computer Industrie, die bisher das Internet fortgetrieben
hat, hin zu neuen Märkten. Dazu zählt er mobile Computersysteme,
Netzwerkunterhaltungsindustrie und netzwerkorientierte Gerätesteuerung.
? Mobile Computersysteme
sind bereits bekannt, aber sie verbreiten sich immer weiter und werden
in Zukunft auch stärker an Netzwerke, wie das Internet anschließbar
sein. Daraus resultiert die Notwendigkeit für ein Protokoll, welches
die Autokonfiguration ermöglicht. Hieraus ergibt sich die Forderung,
daß eine Erweiterung keinen deutlich größeren Overhead
(an Daten) mit sich zieht.
? Die Unterhaltungsindustrie
ist dabei das Internet als Übermittler von Informationen zu erobern.
So sind Fernsehen, Video on Demand, Radio, etc. über das Internet
sicherlich bald Realität. Der Unterschied zwischen Fernsehern und
Computern wird zusammenschmelzen. Jedoch sollen als Vorgabe für IPv6
diese datenintensiven Dienste das Internet so wenig, wie möglich belasten.
? Noch nicht realisiert
sind Gerätesteuerung über das Internet. Hinden nennt Steuerung
von Licht, Heizung, Klimaanlagen, Kühlhäusern und Motoren als
Beispiele. Denkbar sind Computer Intergrated Manufacturing (CIM) Anlagen,
die via Internet oder Intranet von irgendwo in der Welt bedient und überwacht
werden können. [6.13]
Diese "emerging markets"
werden in nächster Zukunft entstehen bzw. wachsen und wenn das Internet
dafür die technischen Grundlagen nicht liefert, werden eigene Verfahren
entwickeln, die im nachhinein schwer zu standardisieren sind. Somit sieht
das IETF seine Position, diesen Technologien eine Basis zu liefern, die
als unabhängiger Standard für jedermann verfügbar ist. IPv6
ist offen für neue Erweiterungen, die heute noch nicht absehbar sind
und somit für die Zukunft gewappnet. [6.13]
Dritter wesentlicher
Punkt der Umstellung ist der Übergang von IP Version 4 auf IPng. Das
Internet ist zu groß, um eine synchrone Umstellung aller Rechner
vorzunehmen. Somit ist bei der Entwicklung darauf geachtet worden, das
eine Abwärtskompatibilität gewährleistet ist. IPng Pakete
können mittels Tunnelling Strecken durch "IPv4 Gebiet" durchqueren.
Benutzer mit alten Systemen können weiterhin alle herkömmlichen
Dienste und IPv4 Rechner erreichen. Mit alter Software stehen neue Dienste,
wie Video on Demand allerdings nicht mehr zur Verfügung. [6.12]
6.4.2 Unicast für
Provider
Die eindeutigen IP-Nummern
sind auf 128-bit erweitert worden, somit entsprechen sie der vierfachen
Länge der alten IP-Nummern. Zunächst mag diese Länge ein
wenig übertrieben erscheinen, bedenkt man, daß sich damit 6,65
1023 Rechner je Quadratmeter der Erde aufstellen ließen. Um ein hierarchisches
und somit einfaches Routing zu gewährleisten, sind die neuen Adressen
systematisch aufgeteilt und es wird klar das dabei einige Nummern nicht
nutzbar sind. Das Beispiel veranschaulicht den Aufbau der Adressen (für
Provider):
3 bits 5 bits z.B.
28 bits z.B. 28 bits z.B. 16 bits z.B. 48 bits
010
(Kennung des Adreßtyps)
registry ID
(NIC Kennung) provider
ID
(z.B. BaWue) subscriber
ID
(z.B. Uni Karlsruhe)
subnet ID
(z.B. Rechenzentrum)
interface ID
(Ethernetkarten-Adresse)
Abbildung 6: IPv6
Unicast-Adresse für Provider
Rechner, die nur
innerhalb des Firmennetzwerkes oder des Provider-Netzwerkes gültig
sind bekommen eine spezielle Anfangskennung (1111 1110 10 bzw. 1111 1110
11) und somit werden Daten von diesen Rechnern nicht nach außen weitergeleitet.
Somit steht ein spezieller Sicherheitsmechanismus zur Verfügung, um
sensible Daten innerhalb des Netzes zur Verfügung zu stellen, aber
nach außen abzuschirmen. Alte IPv4 Adressen haben führende
Nullen und enthalten in den letzten 32-bit Ihre ursprüngliche Adresse.
Mit IPng werden die Adressen als acht durch Doppelpunkt getrennte vierstellige
Hexadezimalzahlen dargestellt, z.B. 1080:0:0:0:8:8A1:417A. Zur Vereinfachung
können somit führende Nullen weggelassen und Adressteile mit
nur Nullen durch zwei aufeinanderfolgende Doppelpunkte abgekürzt werden.
[6.12],[6.13]
6.4.3 Multicast
Da TCP als verbindungsorientiertes
Protokoll nicht Multicast fähig ist, stellt das Multicast eine komplette
Novelle dar . Multicast ermöglicht Video on Demand, Videokonferenz,
Internet-TV und eine ganze Reihe weiterer multimedialer Anwendungen. Ein
Sender sendet hierbei gleichzeitig die gleichen Daten an mehrere Empfänger.
Mehrfachübertragung wird verhindert, da die Internet Schicht sie bereits
auswertet und somit Bandbreiten spart. Multicast Adressen beginnen mit
1111 1111. [6.12]
6.4.4 Anycast
Anycast ist zum einen
für mobile Computer gedacht. Rechner, wie DNS-Server können zu
einer Gruppe von Anycast-Hosts zusammengefaßt werden. Somit sucht
sich ein Laptop nach Anschluß an das Netz den nächstverfügbaren
DNS-Server heraus.
Auch Router können
als Anycast-Rechner konfiguriert werden, um Daten möglichst weit auf
eigenen Leitungen zu verschicken. IPv6 unterstützt die Autokonfiguration,
welche dem Internet Benutzer, der sich über eine Einwahlverbindung
temporär an das Internet anschließt, einen nicht ganz unerheblichen
Installationsaufwand erspart. [6.12]
6.4.5 sonstige Erweiterungen
Auf Grund des Rahmen
dieses Seminars sind weitere Erweiterungen von IPng hier nur in Ansätzen
skizziert. Zur Vertiefung empfiehlt der Autor [6.12], [6.13], [6.15].
? Sicherheit
IPng spezifiziert
einen Authentifizierungsheader und eine Sicherheitseinkapselung, überläßt
dabei aber die anzuwendenden Sicherheitstechniken dem Anwendungsprogramm.
? Header
Der IPv6 Header
ist trotz vierfacher IP-Adressenlänge nur doppelt so groß, wie
der IPv4 Header. Optionen wurden optional gemacht bzw. überflüssige
weggelassen.
? Routing
IPv6 läßt
Angaben über das Routing zu, z.B. um Sicherzustellen, daß Pakete
möglichst weite Strecken auf eigenen Leitungen zurücklegen
? Zukunftsoffenheit
Es wurde beim Entwurf
explizit darauf geachtet, daß genug Raum für zukünftige
Entwicklungen vorhanden ist, sowohl in Bezug auf die IP-Adressen, als auch
auf Portnummern, Dienste, Header- Optionen, etc.
Die Next Generation
Arbeitsgruppe am IETF nennt keinen Termin für die Einführung
von IPv6. Der Entwurf liegt in der zweiten Version vor. Eine Umstellung
ist in den nächsten zwei bis drei Jahren zu erwarten.
. |
Quellenangaben
Kapitel 6
[1] Hosenfeld, Friedhelm und Brauer, Kai: Kommunnikation
ohne Grenzen – TCP/IP Informationsübermittlung im Internet, c't Magazin
für Computertechnik, Heft 12, 1995, S. 330ff |
[2] What
is TCP/IP and Why Use It? |
[3] Transmission
Control Protocol (TCP) |
[4] Internet
Protocol (IP) |
[5] Feichtner, Christian: Einführung
in TCP/IP |
[6] December, John und Ginsburg, Mark: HTML &
CGI, Indianaplolis 1995, sams.net Publishing, S. 374f |
[7] Liu, Cricket; Peek Jerry; u.a.: Internet-Server
– Einrichten und Verwalten, O'Reilly, Bonn 1995, S. 9ff |
[8] Filippidis und Kremer: Koordination
des Internet |
[9] Feichtner, Christian: DNS |
[10] Weihrich, Thomas: Filofax fürs Internet
– Der Domain Name Service von TCP/IP, c't Magazin für Computertechnik,
Heft 10, 1997, S. 346ff |
[11 ] Oberweis, Andreas: Verteilte Datenbanksysteme,
Frankfurt 1997 |
[12 ] Hosenfeld, Friedhelm: Next Generation –
Internet Protocol Version 6: ein neues Kommunikationszeitalter?, c't Magazin
für Computertechnik, Heft 11, 1996, S. 380ff |
[13 ] Hinden, Robert: IP
Next Geneartion Overview |
[14 ] Deering, S. und Hinden, Robert: Internet-Draft,
Internet Protocol Version 6 – Specification |
[.15 ] Längsfeld, Malte und Wessels, Lars:
Informationsgesellschaft
– Chancen und Risiken – Sicherheit in der Informationsgesellschaf |
|