Inhalt
1 Einführung
2 TCP/IP - Übersicht
2.1 Die grundlegende Struktur
2.2 Terminologie
2.3 Der Datenfluss
2.4 Zwei Netzwerk-Anschlüsse
2.5 IP bildet ein zusammenhängendes
logisches Netzwerk
2.6 Unabhängigkeit
vom physikalischen Netzwerk
2.7 Interoperabilität
2.8 Was kommt nach der
Übersicht?
3 Ethernet
3.1 Eine menschliche Analogie
4 ARP
4.1 ARP-Tabelle für
die Adressübersetzung
4.2 Ein typisches Übersetzungs-Szenarium
4.3 Das ARP Request/Response
Paar
4.4 Das Szenarium geht
weiter
5 Das Internet Protokoll
5.1 Direktes Routing
5.2 Indirektes Routing
5.3 Die Routing-Regeln
des IP-Moduls
5.4 IP-Adressen
5.5 Namen
5.6 IP Route-Tabelle
5.7 Details des Direct
Routing
5.8 Das Szenarium einer
direkten Kommunikation
5.9 Details des Indirect
Routing
5.10 Das Szenarium einer
indirekten Kommunikation
5.11 Zusammenfassung des
Routing
5.12 Verwaltung der Route-Tabellen
6 User Datagram Protocol
6.1 Ports
6.2 Kontrollsumme
7 Transmission Control Protocol (TCP)
8 Netzwerk Anwendungen
8.1 TELNET
8.2 FTP
8.3 rsh
8.4 NFS
8.5 SNMP
8.6 X-Windows
9. Nachwort
1 Einführung
Hier wird keine Anleitung zu finden sein, wie man
sich unter Zuhilfenahme von TCP/IP in irgendeinen Rechner "einhackt".
Dieser Text enthält lediglich eine Übersicht
über die Schwerpunkte von TCP/IP, und soll als Leitfaden durch die
TCP/IP-Technologie dienen. Er enthält nichts über historische
Entwicklung und Konsolidierung von TCP/IP, die kaufmännischen Aspekte
und ihre Zukunft im Vergleich zu ISO - OSI. In der Tat wird auch ein grosser
Teil der technischen Informationen weggelassen, insbesondere was die feineren
Details betrifft. Was verbleibt ist ist ein Minimum an Informationen, deren
Verständnis für das professionelle Arbeiten in einer TCP/IP-Umgebung
unumgänglich ist. Dies schliesst insbesondere die Aufgaben des Systemadministrators,
des Systemprogrammierers und von Netzwerk-Managern ein.
Dieser Lehrgang benutzt Beispiele aus der UNIX -
TCP/IP - Umgebung, die Hauptpunkte treffen jedoch auf alle TCP/IP-Implementierungen
zu.
Es sei nochmal darauf hingewiesen: diese Schrift
dient der Erläuterung der Zusammenhänge und nicht der Definition
des TCP/IP-Standards.
2 TCP/IP - Übersicht
Unter der allgemeinen Bezeichnung 'TCP/IP' versteht
man im allgemeinen alles und jedes was mit den spezifischen Protokollen
TCP und IP zusammenhängt. TCP/IP kann demnach Anwendungen, weitere
Protokolle und sogar des Netzwerk- oder Übertragungsmedium einschließen.
Ein Beispiel für weitere Protokolle sind UDP, ARP und ICMP. Beispiele
für Anwendungen sind TELNET, FTP und rcp. Treffender wäre der
Ausdruck Internet-Technologie. Demnach ist ein Netzwerk, welches auf der
Basis der Internet-Technologie arbeitet ein Internet.
2.1 Die grundlegende Struktur
Um diese Technologie zu verstehen, müssen wir
zuerst die folgende logische Struktur verstehen (Fig.1):
Fig.1: Basis-Knoten eines TCP/IP-Netzes
Dies ist die logische Struktur des mehrschichtigen
Protokolls in einem Computer im Internet. Jeder Computer der über
das Internet kommunizieren kann, verfügt über diese logische
Struktur die sein Verhalten auf dem Netz bestimmt. Die Rechtecke stellen
Prozesse dar, denen Daten auf dem Weg durch den Computer unterworfen werden,
und die Linien welche die Rechtecke verbinden symbolisieren die Wege welche
die Daten nehmen. Die waagerechte Linie am unteren Rand stellt das Ethernetkabel
dar, 'T' ist der Transceiver, er dient der elektronischen Anpassung. Das
Verständnis dieser logischen Struktur ist von grundlegender Bedeutung
für das Verständnis der Internet Technologie. Wir werden uns
daher in diesem Lehrgang immer wieder darauf beziehen.
2.2 Terminologie
Der Bezeichnung einer Dateneinheit, welche sich
durch das Internet bewegt, hängt davon ab, an welcher Stelle des Protokollstapels
sie sich gerade befindet. Kurz zusammengefasst: befinden sich die Daten
auf dem Ethernet heissen sie ETHERNET FRAME, befinden sie sich zwischen
dem Ethernet-Treiber und dem IP-Modul heissen sie IP-PAKET, befinden sie
sich zwischen dem IP-Modul und dem UDP-Modul heissen sie UDP-DATAGRAM,
sind sie zwischen dem IP-Modul und dem TCP-Modul heissen sie TCP- SEGMENT
(oder allgemeiner transport message) und wenn sie sich in einer Anwendung
befinden heissen sie application message.
Diese Definitionen sind leider nicht perfekt. Sie
werden von einer Publikation zur nächsten anders gehandhabt. Spezifischere
Definitionen finden sich in RFC 1122 section 1.3.3.
Ein Treiber ist ein Programm, welches direkt mit
der Interface-Hardware kommuniziert.. Ein Modul ist ein Programm welches
mit einem Treiber oder mit einem oder mehreren Modulen kommunizieren kann.
Die Begriffe Treiber, Modul, Ethernet-Frame, IP-Paket, UDP-Datagramm, TCP-Message
und Application-Message werden in dieser Schrift im diesem Sinne verwendet.
2.3 Der Datenfluss
Lassen Sie uns nun den Datenfluss durch den Protokollstapel
in Fig.1. verfolgen. Von Anwendungen, welche TCP (Transmission Control
Protocol) verwenden, gelangen die Daten in den TCP-Modul. Bei Anwendungen,
die UDP (User Datagram Protocol) verwenden, gelangen die Daten von der
Anwendung zum UDP-Modul. Eine typische Anwendung, die TCP benutzt, ist
FTP (File Transfer Protocol). Sein Protokollstapel lautet beispielsweise
FTP/TCP/IP/ENET. Eine UDP-Anwendung ist SNMP (Simple Network Management
Protocol). Ihr Protokollstapel lautet daher SNMP/UDP/IP/ENET.
Das TCP-Modul, UDP-Modul und der Ethernet-Treiber
sind n-zu-1 Multiplexer. Sie sind in der Lage von mehreren Eingängen
einen auf den (einzigen) Ausgang zu schalten. Sie sind auch 1-zu-n Demultiplexer.
Als Demultiplexer schalten Sie einen Eingang auf einen von mehrere Ausgängen
entsprechend dem Typfeld im Protokollkopf der ankommenden Daten.
Fig.2: n-zu-1 Multiplexer und 1-zu-n Demultiplexer
Erreicht nun ein Ethernet-Frame aus dem Netz kommend den Ethernet-Treiber, kann das Datenpaket entweder zum ARP- (Address Resolution Protokoll) Modul oder zum IP- (Internet Protocol) Modul weitergeleitet werden. Der Wert der im Typfeld des Ethernet-Frame steht entscheidet, ob die Weiterleitung zum ARP- oder IP-Modul erfolgt. Erreicht ein IP-Paket das IP-Modul, kann es zum TCP- oder zum UDP-Modul weitergeleitet werden. Dies wird bestimmt durch den Inhalt des Protokoll-Feldes im IP-Header. Wenn ein UDP-Datagramm das UDP-Modul erreicht, entscheidet dieses je nach Inhalt des Port-Feldes in der Application-Message zu welcher Anwendung das Datenpaket weiterzuleiten ist. Wenn eine TCP- Message den TCP-Modul erreicht, entscheidet dieser ebenfalls anhand des Inhalts des Portfeldes der TCP-Message zu welcher Anwendung das Datenpaket weiterzuleiten ist.
Der 'abwärts' führende Multiplexerpfad ist wesentlich einfacher in der Durchführung, da von jedem Ausgangspunkt jeweils nur ein Weg zum Ausgang führt. Jeder Modul fügt daher lediglich an der richtigen Stelle seine Header-Information hinzu, damit das Paket im Zielcomputer korrekt demultiplext werden kann.
Unabhängig ob es sich um UDP- oder TCP-Anwendungen handelt, die Datenströme laufen stets über das IP-Modul und von dort zum darunterliegenden Netzwerk-Interfacetreiber.
Obwohl die Internet-Technologie eine Vielzahl von Netzmedien unterstützt, wird in diesem Lehrgang stets von ei-nem Ethernet ausgegangen, da es das am häufigtsen verwendete physikalische Netz ist, welches unter IP benutzt wird. Der Computer in Fig.1 besitzt nur einen Ethernet-Anschluß. Die 6-Byte Ethernet-Adresse ist für jedes Interface (Ethernetkarte) einmalig, da sie vom Hersteller auf der Karte eingeschrieben wurde.
Der Computer hat unabhängig davon eine 4-Byte
IP-Adresse. Diese Adresse ist im IP-Modul gespeichert. Diese Adresse muß
ebenfalls einmalig sein auf dem Internet. Sie wird daher von der Netzadministration
vergeben. Ein funktionierender Computer muß immer seine eigene IP-
und Ethernet-Adresse kennen.
2.4 Zwei Netzwerk-Anschlüsse
Ist ein Computer mit zwei verschiedenen Ethernets
verbunden, ergibt sich die eine logische Struktur nach Fig.3.
Fig.3: TCP-IP Netzwerk-Knoten auf 2 Ethernetzen
Dieser Computer hat sowohl 2 Ethernet-Adressen als auch zwei IP-Adressen. Es ist zu sehen, daß er zwei physikal-ische Netzwerk-Interfaces hat und das IP-Modul ist nun ein n-zu-m Multiplexer und m-zu-n Demultiplexer.
Fig.4: n-zu-m Multiplexer und m-zu-n Demultiplexer
Das IP-Modul multiplext nun sowohl die ankommenden wie die abgehenden Datenströme, d.h. unser IP- Modul ist wesentlich komplexer geworden als das in unserem ersten Beispiel (Fig.1). Daten können von einem Netzwerk em-pfangen und in ein anderes gesendet werden und umgekehrt. Der Prozess des Weiterbeförderns von Datenpaketen von einem Netz zu einem Anderen heisst 'forwarding'. Ein Computer der die Aufgabe des forwarding von IP-Paketen hat, heißt IP-Router.
Fig.5: Beispiel für IP-Weiterbeförderung (forwarding)
Wie man aus der Fig.5 ersehen kann, berührt
das Weiterbefördern von IP-Paketen niemals die TCP- und UDP-Module
des Routers. Einige Implementationen von IP-Routern weisen diese Module
daher gar nicht auf.
2.5 IP bildet ein zusammenhängendes
logisches Netzwerk
Der Erfolg des Internet ist im wesentlichen auf
die Wirkungsweise des IP-Moduls zurückzuführen. Jedes Modul und
jeder Treiber hängt seinen Kopf an das Datenpaket, wenn dieses auf
seinem Weg abwärts durch den Protokollstapel vorbeikommt. Steigt ein
Datenpaket durch den Protokollstapel aufwärts in Richtung einer Anwendung,
entnimmt jedes Modul bzw. Treiber an dem es vorbeikommt die zuständigen
Kopfinformationen. Der IP-Header enthält die IP-Adresse, welche aus
mehreren physikalischen Netzwerken ein einziges logisches Netz bildet.
Die Verbindung von mehreren physikalischen Netzen zu einem logischen Netz,
ist die Ursache für die Bezeichnung 'Internet'. Eine Zusammenfassung
mehrerer physikalischer Netze zu einem logischen Netz, das einen Bereich
in dem sich IP-Pakete bewegen können bildet, heisst ein INTERNET.
2.6 Unabhängigkeit vom physikalischen
Netzwerk
IP verbirgt die darunterliegende Netzwerk-Hardware
gegenüber der Netzanwendung. Wenn sie ein neues physikalisches Netzwerk
erfinden, können sie dieses an das Internet anschliessen, indem sie
einen neuen Treiber schreiben, der das Internet mit der darunter liegenden
Hardware verbindet. So bleiben die Anwendungen intakt und unberührt
von Änderungen in der Hardwaretechnologie.
2.7 Interoperabilität
Wenn zwei Computer über das Internet miteinander
kommunizieren können, besitzen beide die Eigenschaft der Interoperabilität
(interoperability). Die meisten der heute auf dem Markt befindlichen Computer
haben diese Eigenschaft. Sollten sie beim Kauf ein Exemplar erwischen,
das dazu nicht in der Lage ist, und sich auch nicht nachrüsten lässt,
haben sie ein äusserst seltenes Exemplar entdeckt.
2.8 Was kommt nach der Übersicht?
Vor diesem Hintergrund wollen wir im weiteren die
folgenden Fragen beantworten:
[-] Wie findet man die für das Absenden eines
IP-Paketes notwendige Ethernet-Adresse?
[-] Wie findet IP heraus, welches von mehreren darunterliegenden
Netzen für das Absenden eines IP- Paketes gewählt werden muss?
[-] Wie erreicht ein Client auf dem einen Computer,
den Server auf einem anderen?
[-] Warum gibt es sowohl TCP als auch UDP, warum
reicht nicht eins von beiden?
[-] Welche Netzwerk-Anwendungen gibt es?
Diese Punkte werden nach einem Abstecher ins Ethernet
erklärt
3 Ethernet
Dieser Abschnitt gibt einen kurzen Überblick
über die Ethernet-Technologie. Ein Ethernet Frame (d.h. eine Dateneinheit
auf dem Ethernet) enthält eine Zieladresse, eine Absenderadresse ein
Typfeld und die zu transportierenden Daten. Eine Ethernetadresse besteht
aus 6-Byte. Jedes Gerät hat seine eigene Ethernetadresse und liest
nur Ethernet-Frames mit dieser Adresse. Alle Geräte "hören" aber
auch auf Ethernet Farmes mit der 'Wildcard'-Adresse "FF-FF-FF-FF-FF-FF"
(in hexadezimal), die 'Broadcast'- Adresse heisst und da sie von allen
Geräten im Netz gelesen wird.
Das Ethernet benutzt CSMA/CD (Carrier Sense and
Muliple Access with Collision Detection). CSMA/CD bedeutet, daß alle
Geräte über ein eiziges Medium miteinander kommunizieren, auf
dem natürlich immer nur ein Gerät aufs mal senden darf, aber
alle ständig "hören". Wenn zwei Geräte (nachdem sie geprüft
haben, daß die Leitung frei ist) gleichzeitig versuchen zu senden,
wird die Sende- Kollosion von beiden Geräten entdeckt. Der Sendevorgang
wird von beiden abgebrochen und nach einer kurzen und zufälligen Zeitspanne
einer neuer Versuch unternommen.
3.1 Eine menschliche Analogie
Eine schöne Analogie zum Ethernet ist eine
Gruppe von Leuten, die sich in einem vollständig dunklen Raum unterhalten.
In dieser Analogie stellen die Schallwellen in der Luft das physikalische
Netzwerk dar, statt der elektrischen Signale auf Koaxkabeln.
Jeder kann hören, wenn ein anderer spricht
(Carrier Sense). Jedermann in dem Raum hat dieselben Fähigkeiten der
Unterhaltung (Multiple Access), aber keiner hält lange Reden, weil
alle höflich sind. Ist eine Person unhöflich wird sie aufgefordert
den Raum zu verlassen (d.h. sie wird vom Netz abgeschaltet). Niemand spricht
solange ein anderer am Sprechen ist. Wenn jedoch zwei Leute gleichzeitig
mit sprechen beginnen, bemerken es beide, weil jeder etwas hört, was
er selbst nicht gesagt hat (Collision Detection). Beide werden in diesem
Fall einen Moment warten, bevor einer erneut zu sprechen beginnt. Der Andere
hört dies und wartet bis der Erste zu Ende gesprochen hat, bevor er
einen neuen Versuch unternimmt. Um Verwechslungen zu vermeiden, hat jede
Person ihren eigenen Namen (eigene Ethernetadresse). Jedesmal wenn jemand
spricht, beginnt er mit dem Namen der Person für die seine Rede bestimmt
ist, und sagt seinen eigenen Namen (Ethernet Ziel- und Absenderadresse).
Z. B. 'Hallo Jane, hier ist Tarzan, ..blah blah blah '. Wenn der Sprecher
zu allen sprechen möchte, kann er sagen 'an alle' (broadcast address).
Z.B. 'Hallo an alle, hier ist Tarzan, ...blah,blah, blah...'.
4 ARP
Wie wird nun die Ethernetadresse bestimmt beim Absenden
eines IP-Paketes? Für die Übersetzung der IP-Adresse in die Ethernetadresse
wird das ARP (Address Resolution Protokoll) benutzt. Diese Übersetzung
ist nur für abgehende IP-Pakete notwendig, wenn der IP-Header und
der Ethernet-Header gebildet werden.
4.1 ARP-Tabelle für die Adressübersetzung
Die Übersetzung wird mit Hilfe einer einfachen
Tabelle ausgeführt. Die Tabelle heisst ARP-Tabelle, ist im Speicher
abgelegt, und enthält für beide Adressen jeweils eine Spalte.
Bei der Übersetzung einer IP- Adresse in eine Ethernetadresse wird
in der Tabelle nach der IP-Adresse gesucht, die zugehörige Ethernetadresse
steht dann in derselben Zeile dahinter.
Die folgende Tabelle zeigt eine vereinfachte ARP-Tabelle
IP-Adresse Ethernetadresse
141.20.30.1 08-00-39-00-2F-C3
141.20.30.3 08-00-5A-21-A7-22
141.20.30.4 08-00-10-99-AC-54
Tab.1: Beispiel einer ARP-Tabelle
Einer allgemein akzeptierten Konvention folgend, werden die 4-Byte langen IP-Adressen in dezimaler Schreibweise getrennt durch einen Punkt angegeben. Die Ethernetadressen werden als 6-Byte-Adresse in hexadezimaler Schreibweise angegeben. Die Zahlen werden durch einen Gedankenstrich oder durch Doppelpunkt getrennt.
Die ARP-Tabelle ist notwendig, da die Ethernetadressen
und die IP-Adressen unabhängig voneinander festgelegt werden, und
es daher keinen Algorithmus gibt mit dem man aus der IP-Adresse die Ethernetadresse
ermitteln könnte. Die IP-Adresse wird vom Netzwerk-Manager festgelegt,
und hängt von der Stelle im Internet ab, an der sich der Computer
befindet. Wenn der Computer an einer anderen Stelle ans Internet angeschlossen
wird, muss die IP-Adresse geändert werden. Die Ethernetadresse wird
vom Hersteller der Hardware festgelegt, entsprechend dem Ethernet-Adressraum
für den der Hersteller eine Lizenz hat. Wird die Ethernet Hardware
(Ethernet-Karte) ausgewechselt, ändert sich damit auch die Ethernetadresse.
4.2 Ein typisches Übersetzungs-Szenarium
Eine Netzwerkanwendung, wie z.B. Telnet, sendet
eine 'application message' an das TCP-Modul, worauf das TCP-Modul eine
entsprechende TCP-Message zum IP-Modul schickt. Die IP-Adresse des Zielcomputers
ist der Anwen-dung dem TCP- und dem IP-Modul bekannt. Im IP-Modul wird
das IP- Paket gebildet und zum Ethernettreiber ge-schickt, doch davor muß
die Ethernetadresse des Zielcomputers bestimmt werden. Dies geschieht mittels
der ARP-Tabelle.
4.3 Das ARP Request/Response Paar
Hier stellt sich nun die Frage woher der Inhalt
der ARP-Tabelle kommt. Die Antwort lautet: die Tabelle wird automatisch
nach dem Bedarfsprinzip gefüllt. Zwei Dinge passieren, wenn zu einer
IP-Adresse keine Ethernetadresse in der ARP-Tabelle gefunden wird:
Ein ARP-Anforderungspaket (ARP-request-paket) mit
der Broadcast-Ethernetadresse ('an alle') wird an alle im Netz befindlichen
Computer gesendet.
Das abgehende IP-Paket wird zurückgehalten
und geht in eine Warteschlange.
Die Ethernet-Interfaces aller im Netz befindlichen
Computer empfangen das Broadcast-Ethernet-Frame. Jeder Ethernettreiber
prüft das Typfeld im Ethernet-Frame und leitet das ARP-Paket zum ARP-Modul
weiter. In dem ARP-Paket ist nun die Frage enthalten Wenn du die im Zielfeld
genannte IP-Adresse die deine ist, schicke deine Ether-netadresse zum Absender
zurück.. Ein ARP-Request-Paket enthält also folgendes:
Sender IP-Adresse 141.20.30.3
Sender Enetadresse 08-00-5A-21-A7-22
Ziel IP-Adresse 141.20.30.2
Ziel Enetadresse < leer >
Tab. 2.: Beispiel eines ARP-Request
(errinnern wir uns, daß die Broadcast-Adresse
FF-FF-FF-FF-FF-FF im Ethernettreiber 'hängen' blieb, und sie daher
im ARP-Paket leer ist.) Jeder ARP-Modul prüft nun die vorliegende
Ziel-IP-Adresse und wenn es die eigene IP-Adresse ist, sendet er eine Antwort
an die Absenderadresse. Das ARP-Response-Paket enthält die Information
Ja, dies ist meine IP-Adresse, meine Ethernetadresse befindet sich im Absenderfeld.
D.h die gesuchte Ethernetadresse befindet sich im Adressfeld des Antwortpaketes.
Es könnte so aussehen:
Sender IP-Adresse 141.20.30.2
Sender Enetadresse 08-00-28-00-38-A9
Ziel IP-Adresse 141.20.30.3
Ziel Enetadresse 08-00-5A-21-A7-22
Tab.3: Beispiel einer ARP Response
Die obige Antwort erreicht den ursprünglichen Absender. Der Ethernettreiber schaut auf das Typfeld und schickt das ARP-Paket zum ARP-Modul. Das ARP-Modul entnimmt dem Paket nun die IP-Nummer und die zugehörige Ethernetadresse und ergänzt damit seine ARP-Tabelle.
Die ARP-Tabelle sieht nun folgendermassen aus:
IP-Adresse Ethernetadresse
141.20.30.1 08-00-39-00-2F-C3
141.20.30.2 08-00-28-00-38-A9
141.20.30.3 08-00-5A-21-A7-22
141.20.30.4 08-00-10-99-AC-54
Tab.4.: ARP-Tabelle nach der Antwort
4.4 Das Szenarium geht weiter
Der neue Tabelleneintrag ist nun installiert, automatisch
und nur Millisekunden nachdem er gebraucht wurde. Wir erinern uns nun an
Schritt 2 in dem das IP-Paket welches abgeschickt werden sollte, in eine
Warteschlange geschickt wurde. Nun wo die erweiterte ARP-Tabelle dazu in
der Lage ist die gesuchte Ethernetadresse zu liefern, kann der Ethernettreiber
aus dem IP-Paket ein Ethernet-Frame bilden und dies über das Ethernet
verschicken. Mit diesen neuen Schritten 3, 4 und 5 sieht das gesamte Szenarium
wie folgt aus:
1. Ein ARP-Anforderungspaket (ARP-request-paket)
mit der Broadcast-Ethernetadresse ('an alle') wird an alle im Netz befindlichen
Computer gesendet.
2.Das abgehende IP-Paket wird zurückgehalten
und geht in eine Warteschlange.
3. Die ARP-Antwort enthält die notwendige Ergänzung
der ARP-Tabelle (IP zu Ethernet-Adresse).
4. Das in der Warteschlnge befindliche IP-Paket
wird mittels der ARP-Tabelle um die Ethernet- Adresse des Zielcomputers
ergänzt.
5. Das in 4. gebildete Ethernet Frame wird über
das Ethernet verschickt.
Zusammengefasst: wenn in der ARP-Tabelle die zur IP-Adresse gehörige Ethernetadresse nicht gefunden wird, wird das IP-Paket zurückgehalten. Die Übersetzungstabelle wird über ein ARP-Request/Response ergänzt und das zurückgehaltene IP-Paket nun verschickt.
Jeder Computer hat für jedes vorhandene Ethernet-Interface eine eigene ARP-Tabelle. Wenn ein Zielcomputer nicht existiert trifft keine ARP-Response ein, und die ARP-Tabelle kann nicht ergänzt werden. Das IP-Modul muss darauf verzichten das IP-Paket an diese Adresse zu verschicken. Die darüber liegende Protokollschicht kann zwischen einem unterbrochenen Ethernet und der Abwesenheit eines Computers mit der gewünschten IP-Adresse nicht unterscheiden.
Einige Implementierungen von IP und ARP schicken
das IP-Paket nicht in eine Warteschlange, während der Wartezeit auf
die ARP-Response. Stattdessen wird das Datenpaket an das TCP-oder UDP-Modul
zurückgeschickt. Nach einer gewissen Zeit wird von diesen Modulen
ein erneuter Versuch gestartet, der durch die inzwischen stattgefundene
Ergänzung der ARP-Tabelle erfolgreich ist.
5 Das Internet Protokoll
Das IP-Modul bildet das Kernstück der Internet
Technologie, und sein Schwerpunkt ist seine Route- Tabelle. IP be-nutzt
diese im Speicher liegende Tabelle um alle Entscheidungen bei der Verschickung
von IP-Paketen zu treffen. Der Inhalt der Route-Tabelle wird vom Netzwerkadministrator
bestimmt. Um zu Verstehen wie die Route-Tabelle benutzt wird, müssen
wir verstehen wie das Internet arbeitet. Dies Wissen ist notwendig für
eine erfolgreiche Administration und Wartung eines IP-Netzes. Die Route-Tabelle
wird am besten zu verstehen sein, wenn wir uns zuerst einen Überblick
über den Datentransport (routing) verschaffen, dann die IP Netzwerkadressen
beschreiben und uns dann mit den Details des Routings beschäftigen.
5.1 Direktes Routing
Die Fig.6 zeigt ein kleines Internet, bestehend
aus den 3 Computers A, B und C. Jeder Computer verfügt über den
Protokoll-Stapel, wie er in Fig.1 (Seite 5) dargestellt ist. Jeder Computer
besitzt ein eigenes Ethernet-Interface mit einer eigenen Ethernet-Adresse.
Jedem Computer wurde durch den Netzwerkmanager eine eigene IP-Adresse zugewiesen,
auch das IP-Netzwerk hat seine Netzwerknummer zugewiesen bekommen.
Fig.6: Ein einzelnes IP-Netzwerk
Wenn A ein IP-Paket an B sendet, enthält dessen
IP-Header die IP-Adresse von A, als die IP-Adresse des Absenders und der
Ethernet-Header enthält als Absender-Ethernetadresse die von A . Ebenso
enthält der IP-Header die IP-Adresse von B als IP-Ziel und der Ethernet-Header
enthält als Ziel die Ethernet-Adresse von B.
Adress Absender Ziel
IP-Header A B
Ethernet-Header A B
Tab.5: Adressen in einem Ethernet Frame für
ein IP-Paket von A nach B
In diesem einfachen Fall ist der IP-Header doppelt
gemoppelt, und die IP-Informationen liefern nichts was im Ethernet-Header
nicht schon enthalten wäre, das einzige was die beiden Adresspaare
verursachen sind zusätzliche Kosten, durch die zusätzliche CPU-Zeit
und die Netzbelastung. Wenn das IP-Paket von A im IP-Modul von B eintrifft,
vergleicht dieser die Ziel-IP-Adresse mit seiner eigenen, stellt Übereinstimmung
fest, und transportiert das Datagramm anschliessend in die darüber
liegende Protokollschicht. Diese Art der Kommunikation zwischen A und B
heisst `direct routing'.
5.2 Indirektes Routing
Ein wesentlich realistischeres Bild eines Internets
zeigt Fig.7. Es setzt sich zusammen aus 3 Ethernets und 3 IP-Netzwerken
die durch einen IP-Router verbunden sind. Dieser Router ist der Computer
D. Jedes Netzwerk besteht aus 4 Computern, jeder mit seiner eigenen IP-
und Ethernet-Adresse.
Fig.7: Drei IP-Netzwerke in einem Internet
Mit Ausnahme von Computer D haben alle Computer den bekannten Protokollstapel aus Fig.1. Computer D ist ein IP-Router. Er ist mit allen drei Netzen verbunden und hat deshalb 3 IP-Adressen und 3 Ethernetadressen. Der Computer D hat einen TCP/IP-Protokollstapel ähnlich dem, der in Fig.3 dargestellt wurde, wobei er jedoch 3 ARP-Module und 3 Ethernet-Treiber anstelle der jeweils zwei in Fig.3. Der Computer D hat jedoch nur ein IP-Modul.
Der Netzwerkmanager hat jedem Ethernet eine eigene Nummer, IP-Netzwerknummer genannt, zugeteilt. In Fig.7 sind die Netzwerknummern nicht aufgeführt, sondern nur die Netzwerknamen.
Wenn der Computer A an den Computer B ein IP-Paket verschickt, ist der Vorgang derselbe wie in dem o.g. einfachen Beispiel in einem einfachen Netzwerk. Jede Kommunikation in einem einfachen Netzwerk verläuft nach dem Schema des `direct routing'.
Die Computer A und D kommunizieren direkt. Dies gilt auch für D und E, und D und H, da in all diesen Fällen die beteiligten Computer demselben IP-Netzwerk angehören. Wenn jedoch der Computer A mit einem Computer jenseits des Routers D kommuniziert ist dies keine direkte Kommunikation mehr.
Wenn A mit einem Computer ausserhalb des eigenen Netzwerkes kommunizeren will, muss er die Dienste von D in Anspruch nehmen. Diese Kommunikation nennt man indirekt. Für dieses s.g. Routen von IP-Paketen sind die IP-Module zuständig. Es geschieht für TCP, UDP und die Netzwerkanwendungen vollständig transparent.
Wenn A ein IP-Paket an E sendet, sind die IP- und
Ethernet-Absenderadressen in diesem Paket die von A. Die IP-Zieladresse
ist die IP-Adresse von E. Da jedoch der Computer A das IP-Paket an D schicken
muß, damit dieser es an E weiterbefördert (forwarding) lautet
die Ethernet-Ziel-Adresse D.
Adress Absender Ziel
IP-Header A E
Ethernet Header A D
Tab. 6: Adressen eines Ethernet Frame: IP-Paket von A nach E (vor D)
Der Ethernet-Treiber von D empfängt das Paket
und leitet es an das IP-Modul weiter, dieser stellt fest, daß es
sich nicht um die eigene sondern um die IP-Adresse von E handelt und schickt
das Paket dorthin.
Adresse Absender Ziel
IP-Header A E
Ethernet Header D E
Tab. 7: Adressen eines Ethernet Frames: IP-Paket
von A nach E (nach D)
Fassen wir zusammen: für die direkte Kommunikation zwischen zwei Computern gilt, daß beide Absenderadressen (IP-Nummer und Ethernetadresse) diejenigen des absendenden Computers sind und beide Zieladressen diejenigen des Computers zu dem das Datenpaket soll. Bei einer indirekten Kommunikation stimmen die Adressen nicht mehr auf diese Art paarweise überein.
Das hier angenommene Internet ist immer noch ein
sehr einfaches Beispiel. Reale Netzwerke werden durch viele Faktoren komplizierter.
Sie bestehen aus einer Vielzahl von Routern und verschiedenen Typen von
physikalischen Netzwerken. Das Beispiel zeigt jedoch, wie ein grosses Ethernet
in kleinere aufgespalten werden kann, um den Ethernet-Broadcastverkehr
zu lokalisieren.
5.3 Die Routing-Regeln des IP-Moduls
Die Übersicht im vorigen Abschnitt zeigte zwar,
was passiert, aber nicht wie es funktioniert. Wir sehen uns daher jetzt
die Regeln oder Algorithmen an, mit deren Hilfe das IP-Modul diese Aufgaben
löst.
5.4 IP-Adressen
Ein Netzwerkmanager weist jedem Computer eine IP-Adresse
zu, entsprechend dem IP-Netzwerk, an dem der Computer angeschlossen ist.
Ein Teil der 4 Byte langen Adresse stellt die Nummer des Netzwerks dar,
der andere Teil der IP-Nummer stellt die Nummer des Computers innerhalb
des Netzwerkes dar (Host-Nummer). Für den Computer in der Tab.1. mit
der IP-Nummer 141.20.30.3 lauetet die Netzwerknummer 141.20.30 und die
Hostnummer ist 3.
Der Anteil der IP-Nummer der die Netzwerknummer
darstellt (der Rest ist immer die Hostnummer) wird bestimmt durch die ersten
4 Bit der IP-Nummer. Alle Beispielnummern in diesem Lehrgang sind vom Type
C. Das bedeutet, daß die ersten 3 Bits beinhalten, daß die
nachfolgenden 21 Bit die Netzwerkadresse und die letzten 8 Bit die Host-nummer
darstellen. In der Klasse C sind also 2 097 152 Netzwerke möglich,
in jedem Netzwerk bis zu 254 Hosts (die Nummern 0 und 255 sind reserviert).
Die Vergabe der IP-Adressen wird vom NIC (Network
Information Center) wahrgenommen. Alle Internets die zu einem einzigen
weltweiten Internet zusammengeschlossen sind, müssen die vom NIC zugewiesenen
Nummern verwenden. Auch wenn jemand der ein eigenes Netz aufbaut, ohne
die Absicht es an das Internet anzuschliesssen, sollte sich die Nummern
vom NIC zuweisen lassen, da es unweigerlich zu Verwechslungen und Chaos
führt, wenn er sich später dazu entschliessßt eine Verbindung
zu einem anderen Internet herzustellen.
5.5 Namen
Die meisten Leute sprechen einen Computer lieber
mit einem Namen als mit einer Nummer an. In der IP- Technologie ist deshalb
die Möglichkeit enthalten jeder IP-Nummer einen Namen zuzuweisen.
Nehmen wir an der Computer mit der Nummer 223.1.2.1 habe den Namen alpha.
In kleineren Netzwerken wird häufig die Übersetzung von Name-zu-IP-Nummer
in jedem Computer einzeln durchgeführt, und zwar mit Hilfe der Datei
'hosts' (unter UNIX meist im Verzeichnis /etc). Für grössere
Netzwerke ist diese Übersetzungsdatei in einem Server gespeichert,
und jeder Host aus dem Netzwerk greift nach Bedarf auf diesen Computer
zu. Einige Zeilen aus dieser Datei für das in Fig.7 dargestellte Netzwerk
könnten so aussehen:
IP-Nummer Name Host
223.1.2.1 alpha A
223.1.2.2 beta B
223.1.2.3 gamma C
223.1.2.4 delta D
223.1.3.2 epsilon E
223.1.4.2 iota
I
Die IP-Adressen stehen in der ersten, die Namen in der zweiten Spalte, in der dritten Spalte stehen die Hostbezeichnungen aus Fig.7. In den meisten Fällen kann man identische 'hosts'-Dateien auf allen Computern einrichten. Sicher werden sie bemerkt haben, daß für delta nur ein Eintrag in der Tabelle erfolgte, obwohl delta 3 IP- Adressen hat. Delta kann nämlich mit jeder seiner IP-Adressen erreicht werden, und es ist gleichgültig welche der Adressen benutzt wird. Wenn ein IP-Paket das IP-Modul von delta erreicht, vergleicht dieser die Zieladresse im IP-Paket mit allen eigenen Adressen.
Aber auch die einzelnen Netzwerke werden mit Namen
versehen. Wenn wir 3 Netzwerke vorzuliegen haben, könnte die `networks'-Datei,
welche die Namemszuteilung dokumentiert, wie folgt aussehen:
Netzwerknummer Netzwerkname
223.1.2 development
223.1.3 accounting
223.1.4 factory
(Wir errinern uns, daß für Netzwerke vom Typ C die ersten 3 Byte der IP-Nummer die Netzwerkadresse sind).
In diesem Beispiel ist also alpha der Computer Nr.1 im `development'-Netzwerk, beta Nr. 2 im selben Netzwerk usw.. Man kann auch sagen alpha ist development.1, beta ist development.2 usw.
Die obige `hosts'-Datei ist für den Nutzer ausreichend,
der Netzwerkmanager wird aber wahrscheinlich die Zeile für den Computer
delta ersetzen durch den folgenden Eintrag:
223.1.2.4 devnetrouter delta
223.1.3.1 facnetrouter
223.1.4.1 accnetrouter
Diese 3 neuen Zeilen in der `hosts'-Datei enthalten
nun alle 3 IP-Nummern von delta und seinen Namen. Tatsächlich enthält
die erste Zeile zwei Namen für den Host, sie können beide synonym
verwendet werden. In der Praxis ist delta der allgemein gebräuchliche
Name, die anderen 3 Namen werden lediglich für die Verwaltung der
Routing-Tabelle verwendet. Diese Dateien werden von Kommandos benutzt,
die der Netzwerkverwaltung dienen und von den Netzwerkan-wendungen. Für
die Funktion von Internet sind sie nicht notwendig, aber sie machen die
Arbeit für uns leichter.
5.6 IP Route-Tabelle
Woher weiss IP welches der unter ihm liegenden Netzwerkinterfaces
(Ethernettreiber) zu verwenden ist, wenn ein IP-Paket abgeschickt werden
soll? Zu diesem Zweck wurde im IP die Routing-( oder Verbindungs-)Tabelle
eingerichtet. Der Schlüssel mit dem in der Tabelle gesucht wird, wird
aus der IP- Adresse des Zielcomputers gewonnen, deren er-sten 3 Byte ja
die Adresse des Netzwerkes steckt.
Die Routing-Tabelle enthält eine Zeile für
jede Verbindung. In den einzelnen Spalten stehen dann die IP- Netzwerknummern,
das direkt/indirekt-Flag, die IP-Adresse des Routers und die Nummer des
zu verwendenden Interface. Vor jedem Abschicken eines IP-Paketes muss diese
Tabelle konsultiert werden. In den meisten Computern kann die Routetabelle
mit dem Befehl "ROUTE" modifiziert werden. Der Systemverwalter (Superuser)
trägt so die vom Netzwerkmanager zu vergebenden IP-Adressen ein.
5.7 Details des Direct Routing
Um dies zu veranschaulichen, wollen wir das Beispiel,
das wir weiter oben hatten, nochmals genauer betrachten.
Fig.8: Detail eines IP-Netzwerkes
Die Route-Tabelle in alpha könnte dann so aussehen:
Netzwerk Direct/indirect
Flag Router Interfacenummer
development
direct
< leer >
1
Tab.8: Beispiel einer einfachen Route-Tabelle
Auf einigen UNIX-Systemen kann man sich diese Tabelle in dieser Form mit dem Befehl "netstat -r" ansehen. In unserem einfachen Beispiel haben alle Computer dieselbe Route-Tabelle.
Zur Verdeutlichung hier dieselbe Tabelle allerdings
mit den entsprechenden Netzwerknummern statt der Namen.
Netzwerk Direct/indirect Flag Router Interfacenummer
223.1.2
direct
< leer > 1
Tab.9: Beispiel einer einfachen Route-Tabelle mit
Nummern
5.8 Das Szenarium einer direkten Kommunikation
Alpha sendet ein IP-Paket an beta. Das IP-Paket
befinde sich im IP-Modul von alpha, und die IP-Adresse von beta (Ziel)
sei beta oder 223.1.2.2. Das IP-Modul extrahiert daraus die Netzadresse
von beta und fragt damit die Route-Tabelle ab. Es wird in der ersten Zeile
ein passender Eintrag gefunden (Netznummer stimmt überein).
Die nächsten Eintragungen in der Zeile der
Route-Tabelle besagen, daß der gewünschte Computer direkt über
das Interface 1 erreicht werden kann. Mittels der ARP-Tabelle erfolgt nun
die Übersetzung der IP- Adresse in die Ethernet-Adresse von beta und
das Ethernet-Frame wird über das Interface 1 direkt an beta verschickt.
Wenn eine Anwendung versucht Daten an eine IP-Adresse
zu verschicken, welche sich nicht im Netzwerk `development' befindet, findet
IP in der Route-Tabelle keinen passenden Eintrag und verwirft das Datenpaket.
Einige Computer machen eine Fehlermitteilung "Network not reachable".
5.9 Details des Indirect Routing
Wir wollen uns nun den komplizierteren Fall des
indirekten Routing genauer ansehen.
Fig.9: Details von drei verbundenen Netzwerken
Die Route-Tabelle in alpha könnte jetzt so aussehen:
Netzwerk Direct/indirect Flag
Router
Interfacenummer
development direct
< leer >
1
accounting
indirect
devnetrouter
1
factory
indirect
devnetrouter
1
Tab.10: Route-Tabelle in alpha
Zur Verdeutlichung dieselbe Tabelle nochmals allerdings
mit den entsprechenden Netzwerknummern statt der Namen (Tab.11).
Netzwerk Direct/indirect Flag Router
Interfacenummer
223.1.2
direct
< leer >
1
223.1.3
indirect
223.1.2.4
1
223.1.4
indirect
223.1.2.4
1
Tab.11: Route-Tabelle in alpha mit Nummern
Der Router in der Routetabelle von alpha ist die
IP-Adresse die delta im Netzwerk development hat.
5.10 Das Szenarium einer indirekten Kommunikation
alpha sendet ein IP-Paket an epsilon. Das IP-Paket
befinde sich im IP-Modul von alpha, und die IP- Adresse des Ziels sei die
IP-Nummer von epsilon (223.1.3.2). Das IP-Modul extrahiert die Netzadresse
des Netzes, in dem sich epsilon befindet (223.1.3), untersucht die Route-Tabelle
und findet in der zweiten Zeile Übereinstimmung. In diesem Eintrag
ist vermerkt, daß die Computer im Netz 223.1.3 über den Router
devnetrouter erreicht werden können. Das IP-Modul von alpha konsultiert
nun die ARP-Tabelle um die Ethernetadresse von devnetrouter zu ermitteln
und schickt das IP-Paket über sein Interface 1 zum devnetrouter. Das
IP-Paket enthält jedoch immer noch als IP-Zieladresse die von epsilon.
Das IP-Paket erreicht delta über das Interface
1 mit dem delta mit dem Netzwerk development verbunden ist, und wird an
das IP-Modul von delta weitergeleitet. Dort wird die IP-Adresse des Ziels
untersucht. Da es sich nicht um eine eigene (eine von den 3 die delta gehören)
handelt, entscheidet delta, daß das IP- Paket weiterzuleiten ist.
Das IP-Modul von delta extrahiert nun ebenfalls die
Netzwerknummer aus der IP-Adresse des Zielcomputers (223.1.3) und konsultiert
seine Route-Tabelle. Dies sieht folgendermaßen aus:
Netzwerk Direct/indirect Flag
Router Interfacenummer
development direct
< leer >
1
factory
direct
< leer >
3
accounting direct
< leer >
2
Tab.12: Route-Tabelle in delta
Dieselbe Tabelle nochmal jedoch mit den Nummern statt
der Namen (Tab.13):
Netzwerk Direct/indirect Flag Router
Interfacenummer
223.1.2
direct
< leer >
1
223.1.3
direct
< leer >
3
223.1.4
direct
< leer >
2
Tab.13: Route-Tabelle in delta mit Nummern
In der zweiten Zeile wird Übereinstimmung gefunden.
Nun sendet das IP-Modul das Paket an epsilon über das Interface 3.
Das Ethernet-Frame enthält als Zieladresssen sowohl im IP-Header als
auch im Ethernet-Header die von Epsilon. Das Paket erreicht epsilon und
dort das IP-Modul. Dieses erkennt die eigen IP-Nummer als Zieladresse und
reicht das Paket zu der darüber liegenden Protokollschicht weiter.
5.11 Zusammenfassung des Routing
Wenn ein IP-Paket durch ein grosses Internet wandert,
kann es durch viele Router kommen, bevor es sein Ziel erreicht. Der Weg
den es nimmt wird nicht durch eine zentrale Leitstelle festgelegt, sondern
ist das Ergebnis des Inhalts aller Route-Tabellen auf welche das Paket
auf seiner Reise trifft. Jeder Computer legt lediglich den nächsten
Schritt fest und zu welchem Computer das IP-Paket in diesem Schritt übertragen
wird. In einigen UNIX-Systemen kann der Weg eines Pakets verfolgt werden,
mit dem Befehl traceroute < IP-Adresse des Ziels > .
5.12 Verwaltung der Route-Tabellen
Das Unterhalten von korrekten Route-Tabellen in
allen Computern eines grossen Netzwerkes ist eine schwierige Aufgabe. Die
Konfiguration der Netze wird durch die Netzwerkmanager ständig verändert,
um den Anforderungen gerecht zu werden. Fehler in den Route-Tabellen können
die Kommunikation jedoch in einer Art und Weise blockieren, deren Ursachen
nur durch entsetzlich weitschweifige Analysen zu entdecken sind. Es ist
ein weiter Weg von der Konfiguration eines einfachen Netzwerkes zu einem
zuverlässigen Internet. Die einfachste Methode einem Ethernet ein
IP-Netzwerk zuzuweisen, ist es jedem Ethernet eine einzelne IP-Netzwerknummer
zuzuweisen.
Hilfe kommt auch von einigen Protokoll- und Netzwerk-Anwendungen.
ICMP (Internet Control Message Protocol) kann verschiedene Routing-Probleme
erkennen und melden. Für kleine Netzwerke werden die Route-Tabellen
für jeden Computer vom Netzadministrator von Hand erstellt. Für
grössere Netze wird dieser Vorgang automatisiert, mittels eines Routing-Protokolls,
welches die Wege durch das Netz bestimmt.
Wenn ein Computer in ein anderes Netz geschaltet
wird, muss seine IP-Nummer geändert werden. Wenn er aus einem Netz
entfernt wird, wird seine IP-Nummer ungültig. Solche Veränderungen
verursachen regelmässige Änderungen in den 'hosts'-Dateien. Bereits
bei mittelgroßen Netzwerken kann es schwierig werden diese kleine
Datei in allen Computern auf dem aktuellen Stand zu halten. Das 'Domain
Name System' hilft dieses Problem zu lösen.
6 User Datagram Protocol
UDP ist eines der beiden Hauptprotokolle die über
dem IP angeordnet sind. Es bietet Dienste für nutzerbezogene Netzwerkanwendungen.
Beispiele für Netzwerkanwendungen die UDP nutzen sind
Network File System NFS
Simple Network Management Protocol SNMP
Die Dienste die UDP bietet liegen nur wenig über
den Möglichkeiten der IP-Schnittstelle.
UDP ist eine verbindungslose Datenübermittlung,
welche keine Garantie für die Zustellung enthält. UDP unterhält
keine Verbindung zu dem entfernten UDP-Modul, sondern schiebt die Daten
einfach auf das Netz und akzeptiert ankommende Datagramme vom Netz ohne
in direkte Verbindung mit der Gegenstelle zu treten. UDP fügt den
Möglichkeiten von IP, nur zwei Dinge hinzu:
6.1 Ports
Wie kann ein Client auf dem einen Computer einen
Server auf einem anderen erreichen?
Der Kommunikationsweg zwischen einer Anwendung und
UDP geht über eines der UDP-Ports. Diese Ports sind durchnummeriert,
beginnend mit Null. Eine Anwendung welche Dienste anbietet (Server) wartet
auf Messages welche über das für die Anwendung bestimmte Port
einkommen. Der Server wartet geduldig auf einen Client welcher seine Dienste
in Anspruch nehmen möchte.
So wartet beispielweise der SNMP-Server , genannt ein SNMP Agent, immer auf Port 161. Es kann in einem Computer nur ein SNMP-Agent installiert sein, da es nur ein UDP-Port 161 gibt. Diese Nummer ist bekannt, da es eine feste durch das Internet zugewiesene Nummer ist. Wenn ein SNMP-Client die Dienste beansprucht, sendet er seine Anforderung an das UDP-Port 161 des Zielcomputers.
Wenn eine Anwendung eine Nachricht über UDP
verschickt, kommt am anderen Ende auch genaue eine Nachricht an. Wenn z.B.
eine Anwendung fünf mal auf ein UDP-Port schreibt, wird die Anwendung
am anderen Ende auch genau fünf Mal von dem entsprechenden Port lesen.
Auch die Grösse der empfangenen Nachricht entspricht genau der die
abgesandt wurde. UDP bewahrt die Grösse einer Nachricht wie sie von
der Anwendung festgelegt wurde. UDP wird nie zwei Nachrichten miteinander
verbinden zu einer, oder eine Nachricht teilen.
6.2 Kontrollsumme
Ein ankommendes IP-Paket in dessen Typfeld des IP-Headers
'UDP' vermerkt ist, wird vom IP zum UDP-Modul weitergeleitet. Wenn das
UDP-Modul das Datagramm erhält, prüft es die UDP- Kontrollsumme.
Wenn die Prüfsumme im Datagramm Null ist, bedeutet dies, dass der
Sender dem Datenpaket keine Prüfsumme mit auf den Weg gegeben hat,
in diesem Fall kann der Prüfsummenmechanismus übergangen werden.
Ist Ethernet das einzige Netzwerk zwischen den UDP- Modulen, braucht es
keine Prüfsumme. Es ist aber trotzdem empfehlenswert den Prüfsummentest
einzuschalten, da beispielsweise einmal die Änderung einer Route-Tabelle
über ein unzuverlässigeres Medium erfolgt, und wie wir oben gesehen
haben können Fehler in einer Route-Tabelle verheerende Folgen haben.
Wenn die Prüfsumme gültig ist (oder Null),
wird geprüft, ob an der verlangten Portnummer eine Anwendung liegt,,
und wenn dies zutrifft die Nachricht in eine Warteschlange eingereiht,
damit die Anwendung sie von dort lesen kann. Durch die Warteschlange können
Daten zwischengespeichert werden, wenn die Nachrichten schneller eintreffen
als die Applikation sie lesen kann. Ist an dem gewünschten Port keine
Anwendung angebunden oder der Speicher für die Warteschlange ist voll,
wird die Nachricht verworfen, und ist damit verloren. Sollten weitere Nachrichten
eintreffen, werden sie solange verworfen bis wieder Platz in der Warteschlange
ist.
7 Transmission Control Protocol (TCP)
Die Dienste von TCP unterscheiden sich wesentlich
von UDP. TCP bietet eine verbindungsorientierten Datenstrom, anstelle der
verbindungslosen Datagrammübergabe bei UDP. TCP garantiert die Datenzustellung,
während dies UDP nicht tut. TCP wird von Anwendungen benutzt, die
eine absolut sichere Zustellung der Daten erfordern, und nicht gestört
werden können durch Time-Outs oder Rücksendungen. Die typischsten
Netzanwendungen die TCP nutzen sind FTP (File Transfer Protocol) und Telnet.
Andere verbreitete Netzanwendungen die auf TCP basieren sind das X-Windows-System
und rcp (remote copy) und die Kommandos der r-Serie. Die gösseren
Möglichkeiten von TCP haben allerdings auch ihren Preis in Form von
grösserer CPU- Belastung und grösserer Bandbreite auf dem Netz.
Der interne Aufbau der TCP-Module ist wesentlich komplexer als derjenige
der UDP-Module. Ähnlich wie bei UDP sind die Netzwerkanwendungen mit
TCP-Ports verbunden. Für die spezifischen Anwendungen sind genau festgelegte
Portnummern bestimmt. So benutzt z.B. Telnet das Port Nr. 23. Der Telnet-Client
kann den Server einfach dadurch finden, daß er sich mit dem Port
23 auf dem gewünschten Computer verbindet. Wenn eine Anwendung die
TCP benutzt startet, kommunizieren zuerst die TCP-Module des Client- und
des Server-Computers miteinander. Die TCP-Module an beiden Enden der Verbindung
tauschen Statusinformationen aus und bilden eine virtuelle Schleife. Diese
virtuelle Schleife beansprucht Hilfsmittel in beiden TCP-Modulen. Die virtuelle
Schleife ist voll duplex, d.h Daten können in beiden Richtungen simultan
transportiert werden. Die Applikation schreibt Daten auf das TCP-Port,
sie gehen über das Netz und werden von der Applikation am anderen
Ende gelesen.
TCP macht aus dem Byte-Strom Pakete nach eigenem
Belieben, eventuelle Grenzen zwischen enzelnen Abschnitten einer Nachricht
werden nicht berücksichtigt. Wenn eine Anwendung beispielsweise 5
mal auf das TCP-Port schreibt, kann es vorkommen, daß die Anwendung
auf der anderen Seite 10 mal lesen muss, um alle Daten zu bekommen, oder
sie muß auch nur einmal lesen. Es besteht keine Korrelation zwischen
der Anzahl und dem Umfang der einzelnen Schreib- und Leseoperationen an
den beiden Enden. TCP ist vergleichbar mit einem gleitenden Fenster, daß
sich über die Zeichen einer Mitteilung schiebt. In diesen Mechanismus
sind ausserdem Zeitüberschreitungs- und Rücktransportmechanismen
eingebaut. Alle abgehenden Daten müssen vom TCP der Gegenstelle bestätigt
werden. Die Bestätigungen können an die Daten angehangen werden.
Beide empfangenden Seiten können den Datenfluss am anderen Ende steuern,
damit wird einem Überlauf des Zwischenspeichers vorgebeugt. Wie bei
allen Protokollen die nach dem Prinzip des gleitenden Fensters arbeiten,
hat das Fenster eine vorgeschriebene Grösse. Erst nach der Übermittlung
eines ganzen Fensters ist eine Bestätigung erforderlich. Für
TCP ist die Fenstergrösse in Bytes vorgeschrieben.
8 Netzwerk Anwendungen
Warum gibt es sowohl TCP als auch UDP, und nicht
nur das eine oder das andere?
Sie befriedigen verschiedene Anforderungen. Die
meisten Anwendungen sind nur für eine der beiden Protokolle ausgelegt.
Als Programmierer wählen sie das Protokoll welches ihren Anforderungen
besser entspricht. Wenn Sie einen zuverlässigen Datentransport brauchen,
kann TCP das Bessere für sie sein. Wenn sie einen Dategramm-Dienst
benötigen, könnte UDP das Beste für sie sein. Wenn sie Effizienz
in langgezogenen Schleifen benötigen, sollten sie TCP wählen.
Wenn sie Effizienz in in schnellen Netzwerken mit kurzen Verzögerungszeiten
brauchen, sollten Sie UDP wählen. Wenn ihre Anforderungen nicht eindeutig
in eine diese Kategorien fallen, ist die "beste" Wahl nicht so einfach.
Dann gibt es aber noch den Weg, daß sie in ihrer Anwendung die Unzulänglichkeiten
des gewählten Protokolls ausgleichen. Wenn sie beispielsweise Zuverlässigkeit
brauchen und haben UDP gewählt, müssen sie die Zuverlässigkeit
in ihrer Anwendung verbessern. Wenn sie TCP gewählt haben, brauchen
aber einen Record orientierten Dienst, muß die Anwendung Marken in
den Datenstrom einfügen, um die einzelnen Records zu kennzeichnen.
Welche Netzanwendungen sind verfügbar?
Es sind viel zuviel um sie alle aufzulisten. Ihre
Zahl wächst beständig. Einige der Anwendungen gibt seit dem Begin
der Internet-Technologie: TELNET und FTP. Andere sind relativ neu: X-Windows
und SNMP. Im folgenden werden die in diesem Lehrgang vorgestellten Anwendungen
kurz beschrieben:
8.1 TELNET
TELNET gibt uns die Möglichkeit über TCP
uns in einem fernen Computer einzulogen. Die Arbeitsweise und das äussere
Bild sind der Arebitsweise eines Telefons ähnlich. Man wählt
über die Tastatur einen Computer an indem man in der Befehlszeile
eingibt 'telnet delta' und erhält ein Login-Prompt des gewünschten
Computers delta. Telnet arbeitet sehr zuverlässig; es ist eine alte
Anwendung und besitzt eine ausgedehnte . Z.B. kann ein Client auf einer
VAX/VMS sitzen und der Server auf einer UNIX System V.
8.2 FTP
File Transfer Protocol (FTP) ist so alt wie TELNET,
benutzt ebenfalls TCP und hat dieselbe ausgedehnte Interoperabilität.
Die Arbeitsweise und das Erscheinungsbild ist fast das gleiche wie bei
TELNET. Aber anstatt der üblichen Kommandos hat man einen kleinen
Satz von Befehlen um Inhaltsverzeichnisse anzusehen und Dateien von einem
Computer zum anderen zu kopieren.
8.3 rsh
Remote shell (rsh oder remsh) ist ein Befehl von
einer ganzen Familie von Befehlen um mit UNIX- ähnlichen Kommandos
auf einem entfernten Computer arbeiten zu können. Der UNIX Copy-Befehl
cp wird zu rcp. Das UNIX Kommando 'wer ist eingelogt' who wird zu rwho.
Die Liste lässt sich fortsetzen, wobei stets vor den UNIX-Befehl ein
r zu setzen ist. Sie werden daher auch r* Kommandos genannt. Die r* Kommandos
werden hauptsächlich zwischen UNIX-Systemen eingesetzt. Sie wurden
hauptsächlich für die Arbeit zwischen 'vertrauten' Hosts entworfen.
Hierbei wird weniger Wert auf die Sicherheit gelegt, dafür umso mehr
auf die bequeme Bedienbarkeit. Um den Befehl 'cc file.c' auf einem fernen
Computer delta auszuführen, ist es lediglich nötig die folgende
Zeile einzugeben: 'rsh delta cc file.c'. Um die Datei 'file.c' nach delta
zu kopieren, ist 'rcp file.c delta:' einzugeben. Um sich auf delta einzuloggen,
muß man 'rlogin delta' eingeben, und wenn der Computer entsprechend
konfiguriert wurde, wird man nicht einmal mit einem Passwort belästigt.
8.4 NFS
Das Network File System, zuerst von Sun Microsystems
Inc. entwickelt, benutzt UDP und ist hervorragend geeignet um UNIX-File-System
auf mehrere Computer zu mounten. Eine disklose Workstation kann damit auf
die Harddisk ihres Servers zugreifen, als ob es eine lokale Festplatte
wäre. Die Daten die sich auf der Festplatte des Computers alpha befinden,
können vom Computer beta benutzt werden als ob sie auf der eigenen
Festplatte wären, wenn das Filesystem in dem sich die Dateien befinden,
per NFS auf beta gemounted sind. NFS bringt eine erhebliche Netzbelastung
mit sich, und ist wegen der lansamen Links oft hinderlich, seine Vorteile
sind jedoch unübersehbar. Der NFS-Client ist in den Kernel des Betriebssystems
implementiert, um sicherzustellen, daß alle Kommandos von den gemounteten
Platten Gebrauch machen können als ob es lokale wären.
8.5 SNMP
Simple Network Managment Protocol (SNMP) benutzt
UDP und ist für die Verwendung in zentralen Netzwerk-Verwaltungsstationen
gedacht. Es ist bekannt, dass wenn genügend Daten vorliegen, der Netzwerkmanager
daraus Netzwerkprobleme erkennen und analysieren kann. Die zentrale Station,
welche SNMP benutzt sammelt diese Daten von den anderen Computern im Netz
ein. SNMP schreibt das Format dieser Daten vor, die zur zentralen Station
oder dem Netzwerkmanager geschickt werden zur Interpretation.
8.6 X-Windows
Das X-Windows System benutzt das X-Window-Protocol
auf TCP um Fenster auf dem Grafikbildschirm einer Workstation zu zeichnen.
X-Window ist jedoch viel mehr als ein Hilfsprogramm zum Zeichnen von Fenstern,
es ist eine vollständige Philosophie für den Entwurf einer Benutzeroberfläche.
9 Nachwort
Dieser Text basiert auf dem RFC 1180, welches sich
mit TCP/IP befaßt. Wenn immer noch Fragen (zu was auch immer) bestehen,
schick mir einfach ne Mail (CrashOverride01@hotmail.com oder CrashOverride25@gmx.de).
Auch hier sei nochmal gesagt, dass dieser Text nicht alles zum Thema TCP/IP
erklärt. Dieses Thema ist so komplex, dass es hier nicht möglich
ist, auf alles einzugehen.
Wenn ihr Lob oder Kritik loswerden wollt, gilt das
Gleiche wie bei Fragen; einfach ne Mail schicken. Aber bitte keine Mail's
à la "Wie hack ich mich in ein System?" oder "Kannst du mir das
Hacken lernen?" Solche Mails werden sofort gelöscht!
Ich werde KEINEM helfen etwas zu "hacken", ich lerne
auch keinem das "hacken" (weil ich es selber nicht kann), ich werde keine
Hilfestellung zum "hacken" von irgendwas geben und ich werde auch keine
Texte mehr schreiben, die sich mit "Hacken" befassen!
by Crash_Override