Aufteilung der Schichten

Ich werde hier die Schichten grob aus der Sicht des Anwenders unterteilen, da hier die Benutzung im Vordergrund steht. Viele der hier vorgestellten Schichten bestehen ihrerseits wieder aus mehreren Schichten. Aber dies würde zu weit führen.

Der Begriff "Internet"

Das Internet ist nicht wirklich hervorstechend. Es ist mehr eine Art Dolmetscher. Wie der Name schon sagt, "Inter" und "net", ist es ein Zwischennetz, welches viele verschiedene Netze einfach miteinander verbindet. Dies funktioniert so gut, daß man als Anwender davon nichts mitbekommt. Man benutzt es einfach.

Die Hardware

Computer werden mit den unterschiedlichsten Technologien miteinander verbunden. Man kann Computer einfach über die serielle Schnittstelle des Computers verbinden, über USB, über Powerline, oder halt auch über Netzwerkkarten. Wobei sich Netzwerkkarten auch wieder aufsplitten in Kupferleitungsverbindungen, Funkwellen (WLan, Satelittenverbindungen), Lichtwellenleiter. Aus der Sicht des Anwenders, und des Netzes an sich ist die Art der Verbindung völlig unerheblich.

Die erste Softwareschicht

Wenn man Netzwerkkarten einsetzt, zum Beispiel in Verbindung mit einem DSL-Modem, so hat jede Netzwerkkarte eine sogenannte MAC-Nummer. Häufig auch als MAC-Adresse benannt. Mit dem Befehl ipconfig kann man sich die MAC-Nummer seiner Netzerkkarten anzeigen lassen. Wird dort als "Physische Adresse" ausgegeben. Unter Windows in einer Eingabeaufforderung einfach folgendes eingeben:

ipconfig/all

Diese auf der ganzen Welt einmalige Nummer wird verwendet, um das Gerät zu identifizieren. Bei Analogmodems gibt es eine solche Nummer nicht, da sie direkt über die Verbindung identifizierbar sind. An einer Verbindung hängt nur 1 einzelnes Modem.

TCP/IP - die nächste große Softwareschicht

Hier kommt jetzt alles zusammen. Egal, wie der Rechner mit dem Internet verbunden ist, er bekommt zur Identifikation eine sogenannte IP-Adresse. Jeder Computer im Internet hat eine solche Adresse. Diese muß nun aber nicht fest mit dem entsprechenden Computer verbunden sein. Als normaler DSL-Nutzer erhält man bei den meisten Providern bei jeder Einwahl eine neue IP-Adresse. Rein technisch ist es auch möglich, daß ein einzelner Computer mehrere IP-Adressen besitzt, da eine IP-Adresse nicht direkt einem Computer, sondern einem Netzwerk-Adapter zugewiesen wird. Und dieser braucht nicht wirklich etwas handfestes zu sein, sondern kann auch ein Stück Software innerhalb eines Computers sein. Und da man Software, also Programme mehrmals starten und mehrere Instanzen gleichzeitig verwenden kann, kann eben ein ganzer Computer mehrere IP-Adressen haben.

Die IP-Adresse

Die IP-Adresse identifiziert also direkt einen Rechner. Diese Adress ist allerdings nur innerhalb des jeweiligen Netzes einmalig. Ich habe hier einen Router. Dieser Router hat 2 IP-Adressen. Eine für das Internet. Diese ist im Internet einmalig. Er hat aber auch eine lokale, ebenso meine Rechner, die über den Router auf das Internet zugreifen können. Diese lokalen IP-Adressen müssen nur innerhalb meines eigenen, lokalen Netzes einmalig sein.

Port-Nummern

Jeder Computer kann nun verschiedene Dienste anbieten. Diese sind über verschiedene Portnummern erreichbar. Die Portnummer kann eine Zahl zwischen 0 und 65535 sein. Portnummern kleiner 1024 sind für offizielle Dienste reserviert, wie Web-Server, FTP-Server, Telnet, SSH, Mail-Server, usw. Portnummern größer 1024 sind allgemeine Ports. Auf Multiusermaschinen, wie zum Beispiel unter Linux, ist es bei korrekter Konfiguration dem User nicht erlaubt, einen Server an einen Port kleiner 1024 zu binden. Er kann aber einen eigenen Server ohne Probleme an einen beliebigen Port größer 1024 binden, solange dieser auf dieser Maschine nicht schon von einem anderen Server verwendet wird.

Auch sind diese Portnummer nicht fest. Der Standardport eines Webservers ist Port 80. Niemand hindert einen daran, den Webserver auf Port 90 zu betreiben. Wenn man nun mit einem Browser auf diesen Server zugreifen möchte, muß man beim Aufruf einfach die passende Portnummer mitgeben. Ansonsten geht der Webbrowser einfach von Port 80 aus.

DNS - Die Namen der Rechner

Eine IP-Adresse ist natürlich nicht einfach zu merken. Daher hat man schon früh eine Art elektronisches Telefonbuch entwickelt. Unter Windows heißt diese Datei:

c:\windows\hosts

Wenn sie nicht vorhanden ist, dann kann das vorkommen. Denn diese Datei wird heutzutage nicht mehr für den normalen Gebrauch des Internets benutzt. Stattdessen wird ein zentrales "Telefonbuch" verwendet. Dieses ist ein Netzwerk von verschiedenen Rechnern, in denen alle Domainnamen eingetragen sind. Darum muß man auch eine Domain "registrieren", wenn man eine Domain für zum Beispiel seine Homepage haben möchte. In den meisten Fällen läuft es so ab, daß bei einer Verbundung zum Internet der Provider unserem Computer erstmal den nächsten DNS-Server mitteilt. Gibt man als User also einen Domainnamen als URL im Webbrowser ein, fragt das System praktisch den DNS-Server nach der zugehörigen IP-Adresse.

Dies kann man jetzt in einer Windowseingabeaufforderung in etwa sehen. Windows stellt leider kein nslookup oder dergleichen zur Verfügung.

ping realsoft3d.com

Nun sieht man die IP-Adresse des Rechners und kann nun das Programm ping eben auch mit dieser IP-Adresse verwenden. Es macht keinen Unterschied.

Das Programm ping sendet praktisch ein kurzes Signal an den angegebenen Rechner, eine Nachricht, "ping", und merkt sich die Absendezeit. Der Server antwortet daraufhin mit einem "pong". Das Programm gibt nun einfach die Zeit aus, die zwischen dem Absenden der Anfrage und dem Empfang der Anwort vergangen ist. Zusätzlich zeigt es aber auch die IP-Adresse des Rechners an. Diese Zeit liegt normalerweise im Millisekundenbereich.

Zu beachten an dieser Stelle ist, daß eine Verbindung zwischen 2 Rechnern durch 2 verschiedene Geschwindigkeiten ausgezeichnet ist. Einmal die Reaktionszeit, und einmal die Übertragungsgeschwindigkeit. Bildlich vorstellen kann man sich das gut mit einem LKW voll mit Festplatten. Schickt man diesen nun von einem Ort zum anderen, ist die Reaktionszeit ziehmlich lang. Die Übertragungsgeschwindigkeit aber extrem hoch. Die Reaktionszeit gibt im Prinzip an, wie lange ein kurzes, einzelnes Paket unterwegs ist, eingeschlossen der Zeit, die der Server zur Generierung der Antwort benötigte. Hat der Server viel zu tun, kann sich diese Zeit verlängern.

Ein Beispiel dazu: Ein LKW hat 100 Festplatten geladen. Jede Festplatten ist mit 100 GigaByte an Daten befüllt. Der LKW transportiert also 100 * 100 GigaByte, = 10000 GigaByte. Dies entspricht 10 TeraByte. Er legt dabei eine Strecke von 600 km zurück. Dafür benötigt er 6 Stunden. Die "Ping-Zeit" beträgt also ganze 12 Stunden, denn Ping gibt ja nicht die Zeit an, bis ein Paket beim Empfänger angekommen ist, sondern wann die Antwort auf ein gesendetes Paket eingetroffen ist. Der LKW muß also für einen Ping diese Strecke nocheinmal wieder zurücklegen und zurückkommen. Die Übertragungsgeschwindigkeit liegt bei 10 TeraByte pro 6 Stunden, also rund 1,6 TeraByte die Stunde, letztenendes kommt man dabei auf eine Geschwindigkeit von guten 463 MegaByte pro Sekunde!

Die Wege der Pakete sind unergründlich

Die Reaktionszeit hängt jetzt nicht nur von dem jeweiligen Server ab, sondern von vielen Computern! Denn das Paket wird von Rechner zu Rechner weitergegeben. Mit dem Programm tracert, kurz für traceroute, kann man sich den Weg eines Paketes ansehen:

tracert realsoft3d.com

Dies dauert jetzt ein paar Sekunden, da das Programm einen sogenannten reverse lookup durchführt. Es erhält von den Rechnern auf dem Weg nur die IP-Adresse. Es fragt den DNS-Server nach dem Namen, dem diese IP-Adresse zugeordnet ist. Und dieser Vorgang ist relativ zeitaufwendig. Denn kein DNS-Server kennt alle Namen. Von daher werden DNS-Anfrage im Bedarfsfall an einen anderen DNS-Server weitergereicht. Von daher kommt es auch häufig vor, daß man in der Ausgabe von tracert Rechner hat, die keinen Namen haben. Dann steht dort einfach nur die IP-Adresse.

An der Ausgabe sieht man auch nun sehr schön, daß die Pakete teilweise recht merkwürdige Wege einschlagen und auch schonmal in anderen Ländern vorbeischauen.

Die Anwendungsschicht

Hier kommen wir nun beim User an. Auf der letzten Schicht arbeiten die normalen Programme, wie zum Beispiel der Web-Browser. Mit diesen benutzt der Anwender das Internet.

Der Web-Browser ist ein gutes Beispiel. Wenn man in die Adressleiste eingibt "http://realsoft3d.com", so sagt er einfach nur dem System "Ich möchte eine Verbindung zu realsoft3d.com, Port 80 haben". Das System geht dann die ganzen Schichten durch und baut eine Verbindung bei erfolg auf. Der Web-Browser erhält daraufhin bildlich gesprochen das Ende eines Schlauches. Spricht er hinein, so wird der Web-Server von realsoft3d.com dies hören. Hört er selber an diesem Ende, so kann er hören, was der Web-Server ihm zu sagen hat.

Das HTTP

Über HTTP, kurz für "HyperTextTransferProtocol", tauschen die beiden, Web-Browser und Webserver nun Nachrichten aus. Der Web-Browser sagt, was er haben will, der Web-Server liefert ihm daraufhin die Antwort. Danach wird die Verbindung wieder beendet. Das HTTP ist so einfach, daß man es sogar von Hand nachspielen kann, wie ein Web-Browser eine Seite abholt. Denn alles läuft bei diesem Protokoll über normalen Text.

Windows selbst liefert dafür nicht wirklich ein passendes Tool. Dafür aber das Programm PuTTY. Dieses ist zwar vornehmlich ein SSH-Client, bietet aber auch die Möglichkeit der Direktverbindung. Wir starten das Programm, stellen als Protokoll ein "Raw" und setzen die Option "Close window on exit" auf "Never". Als Host geben wir "realsoft3d.turboland.de" an und als Port "80". Unter "Window" sollte man noch bei "Lines of scrollback" "1000" eintragen, da doch mehr zurückgeliefert wird, als in ein Fenster passt. Dann einfach auf "Open" klicken. Es öffnet sich ein Fenster, welches nun direkt mit dem Webserver verbunden ist. Dort geben wir folgendes ein:

GET / HTTP/1.1 [RETURN]
HOST: realsoft3d.turboland.de [RETURN] [RETURN]

Wichtig ist, nach der zweiten Zeile 2 mal die Return-Taste zu drücken. Damit signalisieren wir dem Server, daß unsere Anfrage beendet ist. Nun wird uns der Web-Server die entsprechende Antwort senden und die Verbindung beenden:

HTTP/1.1 200 OK
Date: Sun, 24 Apr 2005 22:31:25 GMT
Server: Apache/1.3.29 (Unix)
Last-Modified: Sun, 24 Apr 2005 16:52:06 GMT
ETag: "2304a79-1ec-426bceb6"
Accept-Ranges: bytes
Content-Length: 492
Content-Type: text/html

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html
     PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>
realsoft3d at turboland.de
</title>
</head>
<body>
<h1>
Tutorials
</h1>
<ul>
<li><a href="stern">
Ein Weihnachtsstern
</a>
</li>
<li>
<a href="multicomputing">Multicomputing mit Realsoft3D</a>
</li>
</ul>
</body>
</html>

Die Meldung "200 OK" sagt, daß das angeforderte Dokument gefunden werden konnte. "Content-Type: text/html" sagt aus, daß es sich bei diesem Dokument um eine HTML-Seite handelt. Der Rest ist der eigentliche Quelltext, der im Browser als Webseite dargestellt wird.