Der Begriff Internet umreißt viele verschiedene Gebiete und so gestaltet sich eine Definition als schwierig. Stephen E. Arnold 25 definiert Internet als "a network of networks based on the TCP/IP protocols" oder als "community of people who use and develop those networks" oder als "collection of resources that can be reached from those networks."
Vesper definiert: "Der Begriff "Internet" steht für eine Verknüpfung lokaler, nationaler und internationaler Computernetzwerke, die auf einem gemeinsamen Standard beruhen, welcher technische Verständigung zwischen verschiedenen Computersystemen ermöglicht." 26
Aus technischer Sicht besteht das Internet aus einer Sammlung von Protokollen, die im MILNET und mittels RFC 27 Standards festgelegt sind. Weltweit sind verschiedenste Netze im Internet zusammengeschlossen. Ein gemeinsames Adressierungsschema regelt den Datenverkehr zwischen den Rechnern in den verschiedenen Netzen und ein gemeinsames Transportprotokoll regelt den Transport der Daten.
Jedes Netz im Internet hat eine eindeutige numerische Adresse. Intern kann ein Rechnernetz mit einem Protokoll arbeiten, das nicht dem Internet-Protokoll entsprechen muß. Für das Internet werden die Nummern der Rechner des internen Netzes auf eine Internet-Nummer abgebildet. Die Netznummer und die Rechnernummer darin ergeben eine weltweit eindeutige Internet-Adresse.
Diese Adressen - kurz IP 28-Adressen genannt - haben eine Länge von 32 Bits und bestehen aus 4 mal 8 Bits getrennt durch Punkte. Der Aufbau könnte also so aussehen: 10000010.10010101.00011011.00111000, was der Dezimaldarstellung 130.149.27.56 entspricht.
Die verschiedenen Protokolle, aus denen sich das Internet zusammensetzt sind hierarchisch strukturiert. So kann man das Internet als ein Ganzes bestehend aus vier Schichten von Protokollen verstehen. Im einzelnen Netz läuft das physische Netzprotokoll, weitere Protokolle verbinden die Netze, andere Protokolle regeln den Transport der Daten in den verbundenen Netzen und wieder andere beschreiben, welche Daten in welcher Form transportiert werden. Der Aufbau ist in Abbildung 1 29 zu erkennen.
|
SMTP |
NNTP |
Finger |
HTTP |
FTP |
SNMP |
telnet |
RTP |
... |
Dienstprotokolle |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
UDP |
TCP |
Multicast |
|
Transportprotokolle |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Internet Protokoll IP |
ICMP |
|
Netzverbindungs-protokolle |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Lokale Netze (Ethernet, ISDN, ATM, etc.) |
|
Netzprotokolle |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Die Definition ist aus dem MIL-Standard 1777 entstanden und ist im RFC 791 festgelegt. Das Protokoll setzt auf dem Data Link Layer (z.B. Ethernet) der einzelnen Netze auf. Es ermöglicht eine ungesicherte Verbindung zwischen verschiedenen Netzen und den Datentransport von einer Quell- zu einer Zieladresse.
Das IP Protokoll bietet eine Adressfunktion, die die Abbildung zwischen den IP-Adressen und den lokalen Netzadressen und umgekehrt durchführt. Dafür werden das ARP 30 aus RFC826 und das RARP 31 aus RFC 903 verwendet.
Weiters ermöglicht es die Fragmentierung von Datenpaketen. Damit können die unterschiedlichen Paketgrößen im Internet und dem jeweils lokalen Netzwerk konvertiert werden.
Außerdem wird ein Satz von Übertragungsparametern festgelegt. Diese sind im ICMP 32 in RFC 792 definiert. Ein Beispiel dafür wäre ein ICMP-Datenpaket vom Typ ECHO_REQUEST. Es wird an einen Zielrechner gesendet, der es sofort zurücksendet. Damit kann die Erreichbarkeit eines anderen Rechners geprüft werden.
UDP ermöglicht die Übertragung eines Datagramms an einen bestimmten Dienst auf einem anderen Rechner. UDP ist im RFC 786 definiert. Ein UDP Paket besteht aus den Daten und dem Header, der angibt, von welchem Port des Ursprungsrechners die Daten kommen und auf welchen Port des Zielrechners sie ausgeliefert werden sollen. Er enthält weiters die Länge und eine einfache Prüfsumme.
UDP dient der einfachen Übertragung von Daten. Eine Fehlerkorrektur ist nicht möglich. Da aber nur ein minimaler Überhang an Daten transportiert werden muß, ist UDP das schnellste Internet-Übertragungsprotokoll.
Das TCP kommt aus dem MIL-Standard 1778 und ist im RFC 793 festgelegt. Es setzt direkt auf dem Internet Protokoll auf.
TCP bietet Fehlererkennung und Fehlerkorrektur für Übertragungsfehler auf den unteren Netzwerkschichten und Flußkontrolle, um den TCP-Datenstrom so zu steuern, daß keine Datenpuffer beim Empfänger überlaufen. Reihenfolgekontrolle gewährleistet, daß alle Pakete in der Reihenfolge des Sendens empfangen werden und Übermittlungswiederholung, falls ein Paket verloren gegangen ist.
Der Header des Datenpakets ist daher etwas umfangreicher und besteht aus der Sequenznummer, die das Fragment der Gesamtmitteilung definiert, der Bestätigungsnummer, mit der bei einer Antwort die bisher empfangenen Daten vom Empfänger bestätigt werden, einer Größenangabe, die festlegt, nach wieviel Daten eine Bestätigung vom Empfänger erfolgen muß, einer Prüfsumme und einer Reihe von Optionen und Füllwerten.
TCP ist relativ langsam, weil durch die Bestätigung ein erhöhter Kommunikationsaufwand entsteht, doch durch die Fehlerkorrektur ein sehr sicheres Protokoll.
DNS definiert die Abbildung der IP-Adressen auf leichter verständliche symbolische Namen und ist in RFC 1034 und 1035 definiert. So wird z.B. die Adresse 131.130.107.2 auf www.univie.ac.at abgebildet.
Verschiedene DNS-Server setzen nun die symbolischen Namen im Zuge eines hierarchischen Prozesses in die IP-Adresse um. Der hierarchische Prozeß ermöglicht es, IP-Adressen aus symbolischen Namen zu ermitteln, ohne daß es einen einzelnen DNS-Server geben muß, der alle IP-Adressen kennt.
Telnet ermöglicht es, sich auf anderen Internet-Rechnern anzumelden und dort zu arbeiten. Telnet kommt aus dem MIL-Standard 1782 und ist in RFC 856 definiert. Dieser Dienst setzt auf dem gesicherten Transport Service von TCP auf und stellt einen Remote-Login-Dienst zur Verfügung. Dabei werden die Eingaben vom telnet Programm an den entfernten telnet-Dienst geschickt und die Ausgaben angezeigt.
Mit dem Internet-Dienst "Finger" kann man einen Satz von Informationen über einen bestimmten Nutzer bekommen. Das Ergebnis ist von der Systemsoftware auf dem Zielrechner und der Zugriffsberechtigung abhängig. In RFC 1288 ist die Form der Anfragen, die über eine TCP/IP-Verbindung an den Finger-Dienst gestellt werden können, definiert.
FTP kommt aus dem MIL-Standard 1780 und ist im RFC 959 festgelegt. Es setzt auf dem gesicherten Transport Service von TCP auf und ermöglicht den Transfer von Dateien. Mit FTP wendet man sich an einen entfernten Rechner, kann sich im dortigen Dateisystem bewegen und Dateien speichern oder auf den eigenen Rechner transportieren. Das Programm, mit dem man dieses Protokoll nutzt, trägt meist auch den Namen "FTP". FTP ist ein zustandsorientiertes Protokoll, bei dem der Client sich auf dem Server mittels Benutzername und Paßwort anmeldet, Kommandos absetzt, die Antworten des Servers empfängt und die Verbindung dann wieder abbaut.
Zur Erleichterung der Suche auf FTP Servern gibt es den Archie Dienst, der eine Liste von Servern und Verzeichnissen liefert, auf dem die gesuchte Datei zu finden ist.
SMTP ging aus dem MIL-Standard 1781 hervor und ist im RFC 821 definiert. Es ist ein e-mail Dienst und ermöglicht die Übermittlung von elektronischen Nachrichten. SMTP bsiert auf dem gesicherten Transport Service von TCP und beschreibt, auf welche Weise Mail-Programme bei der Lieferung einer Nachricht von einem Rechner an einen anderen kommunizieren. Das Format einer Mail ist im RFC 822 beschrieben. In Abbildung 2 ist der Transport einer Mail dargestellt. Sie entsteht im Mail-Programm des Absenders und wird von dort zum Mail-Dämon auf derselben Maschine geleitet. Er ermittelt, an welches Programm der Empfängermaschine die Mail zu schicken ist. Über TCP wird die Mail an den Mail-Dämon der Empfängermaschine geschickt, der sie in einer Mailbox ablegt, bis sie mit einem Mailprogramm gelesen oder gelöscht wird.
Die Eigenschaften von e-mail machen es zu einem hervorragenden Kommunikationsmittel.
MIME ist eine Erweiterung des Formats von e-mail. Eine MIME-Mail hat einen erweiterten Header, der anzeigt, daß es sich um eine Mail handelt, die aus mehreren Teilen besteht. Für jeden Teil gibt es nun wieder Kopfzeilen, die sich nicht auf die gesamte Mail, sondern nur auf einen Teil davon beziehen. So ist es möglich, über
e-mail auch andere Informationen als reinen Text z.B. Bilder, Webseiten oder Töne zu transportieren.
Zur Erstellung einer solchen Mail benötigt man ein MIME-fähiges Mailprogramm und zum Lesen dieser Mail natürlich ebenso.
Gopher wurde um 1991 entwickelt, um durch eine hierarchisch strukturierte Sammlung von Informationen navigieren zu können. Es ist ein eher textorientierter Dienst, in den andere Medien nur schlecht integriert werden können.
Gopher ist ein einfaches, zustandsloses Protokoll, bei dem der Client eine TCP-Verbindung zu einem Gopher-Server öffnet, eine bestimmte Information abfragt und die Verbindung schließt. Gopher wurde mit Aufkommen des WWW von HTTP verdrängt, daher werden heute praktisch keine neuen Gopher-Server mehr implementiert.
HTTP der Version HTTP 1.1 ist im RFC 2068 vom Jänner 1997 festgelegt und hat das gesicherte Transport Service von TCP als Grundlage. Es basiert auf einem Anfrage/Antwort Verfahren zur Abfrage von Dokumenten. Nach dem Verbindungsaufbau erfolgt die Anforderung, als Antwort werden die Daten übertragen, dann erfolgt ein Verbindungsabbau.
Die Seiten, die über das HTTP Protokoll ausgetauscht werden, sind in der Seitenbeschreibungssprache HTML 33 dargestellt. Jede Seite ist über einen Uniform Resource Locator (URL) erreichbar. Ein URL besteht aus dem verwendeten Protokoll, einem Servernamen, einem Pfad und einer HTML-Seite, z.B. http://st1hobel.phl.univie.ac.at/~brunn/index.html
HTTP ist ein einfaches Protokoll, bei dem sich der Client - z.B. der Web Browser Netscape Navigator oder MS Explorer - an einen Web Server wendet und Seiten abfragt. Aus dem URL ermittelt er den Rechner und öffnet eine TCP-Verbindung zum WWW Port 80. Dort setzt er einen Befehl ab. Auf den Befehl z.B. GET ~brunn/index.html liefert der Server die angefragte Seite. Das Ergebnis wird nun vom Web Browser am Client aufbereitet. Das Programm HTTP mit dem Dienst World Wide Web ist das am meisten verwendete Programm. Da sich in Web-Browsern auch andere Dienste wie ftp, Gopher und e-mail auf derselben Plattform verbinden lassen, steigt die Anzahl der User ständig massiv. HTTP ist daher einer Entwicklung unterworfen und neue Versionen und Ergänzungen haben es zu einem mächtigen Protokoll werden lassen.
Der IRC ist im RFC 1459 definiert und stellt verschiedene Channels bereit, die jeweils einer Diskussion zugeordnet sind. Man beteiligt sich durch Eingabe eines bestimmten Kommandos an einer Diskussion und alle anderen Teilnehmer bekommen die eingegebenen Äußerungen auf dem Bildschirm ihres Clients dargestellt.
Neben Hyper-G und VRML gibt es mittlerweile noch eine Vielzahl von Protokollen, die aber bei weitem keine so weite Verbreitung wie die oben dargestellten gefunden haben.
Hyper-G versteht einen Hypertext als verteilte Datenbank und registriert jede Seite bei einem Hyper-G Server. Die Server tauschen über ein Protokoll die Informationen zur Registrierung aus und so kann es keine Verweise geben, die ins Leere zeigen, was bei HTTP leider (zu) oft vorkommt.
VRML ist eine Beschreibungssprache für Objekte, die im Gegensatz zu HTML nicht nur zwei Dimensionen darstellen kann. So können Abbildungen von Körpern mittels einer einfachen ASCII Darstellung über das Netz transportiert werden. Diese Körper können an verschiedenen Stellen des Netzes beschrieben sein und so läßt sich ein Raum mit Knoten aus verschiedensten Servern des Internets füllen. So kann z.B. ein Tisch auf einem Server in Japan beschrieben sein, ein Sessel auf einem Server in Wien und der Raum mit Tisch und Sessel wird sichtbar, wenn man z.B. eine Adresse in Sydney anwählt.
Mit Java lassen sich kleine Programme – genannt "Applets" - auf einem Web-Server bereitstellen, die zusammen mit einer Web-Seite zum Browser transferiert und dort ausgeführt werden können.
Java basiert auf einem Klassenkonzept. Für einen Datentyp wird eine Anzahl von Methoden definiert, mit denen er bearbeitet werden kann. Diese Definitionen werden in einer Klasse zusammengefaßt. Ein durch eine Klasse definierter Datentyp kann als Objekt bezeichnet werden. Zum Beispiel wäre ein Datumstyp durch Tag, Monat und Jahr dargestellt, es seien Methoden "Setzen des aktuellen Datums", "Subtraktion von Datumswerten" und "Addition von Datumswerten" als Klasse definiert. So kann in einem Terminkalender jeder Termin als Datumsobjekt dargestellt werden. Der Java-Compiler 34 verarbeitet jede Klasse und legt sie als Datei mit der Endung .class ab. Zur Laufzeit des Programms werden die verschiedenen Klassen zusammengebunden. Diese Klassen können an verschiedenen Orten liegen und über das Internet übertragen werden.
Im WWW werden Applets in HTML-Seiten eingebunden und durch einen speziellen Befehl definiert. Der Browser versucht nun beim Erkennen dieses Befehls den Code der Klasse zu laden, die verwendeten anderen Klassen dazuzuladen und das Applet auszuführen. Diese Klassen können entweder im Browser selbst eingebaut sein, auf dem Rechner, auf dem der Browser selbst läuft, abgelegt sein oder auf dem Web-Server, von dem die HTML-Seite stammt, über das Internet geladen werden.
Eine besonders interessante Entwicklung sind MUD’s, die die Interaktion von mehreren Benutzern in einem Rollenspiel erlauben. Jeder Teilnehmer wählt einen bestimmten Charakter und findet eine Spiellandschaft vor. In dieser Landschaft gibt es neben Mitspielern, die vom MUD Server erzeugt worden sind auch andere Internet User, die sich im MUD bewegen.
Technisch ist ein MUD kein verteilter Dienst - ein MUD-Server läuft auf einem bestimmten Rechner und verwaltet eine vom Administrator entworfene Welt. Die Spieler benutzen Clients, die sich allesamt an denselben MUD-Server wenden.
Obwohl MUD’s im Moment hauptsächlich zum Spielen verwendet werden, haben sie ein enormes Potential, da über den MUD-Server extrem komplexe Datenbereiche verwaltet werden können. So ist z.B. ein virtuelles Büro denkbar.