Einleitung Die Netzzugangsschicht Die Internetschicht Die Transportschicht Die Anwendungsschicht Die Internetschicht und das IP- Protokoll Der Aufbau einer IP- Adresse Domänen Die Verwaltung der Top- Level- Domains Die Funktion des Domain Name Service (DNS) Die Transportschicht und das Transmission Control Protocol (TCP) Aufbau von TCP- Verbindungen: Ports und Sockets Die Protokolle der Anwendungsschicht Austausch von Hypertextdokumenten mit HTTP Die Struktur eines HTTP- Requests Die Struktur einer HTTP- Response Weitere Protokolle der Anwendungsschicht Dateitransfer mit FTP E-Mail mit SMTP, POP und IMAP Terminalsitzungen mit Telnet
Die Basis für die logische Struktur des Internets bildet die TCP/IP- Protokollfamilie und das hinter diesen Protokollen stehende vierschichtige Architekturmodell zur Rechnerkommunikation, das eine vereinfachte Form des erst später von der ISO (International Standardization Organisation) entwickelten und noch weiter ausdifferenzierten siebenschichtigen OSI- Modells (Open Systems Interconnection) darstellt.
In dem von Cerf und Kahn im Auftrag des US- Militärs entwickelten vierschichtigen Modell stellt jede Schicht der übergeordneten Schicht Dienste zur Verfügung und nimmt die Dienste der untergeordneten Schicht in Anspruch. Dabei verlässt sich jede Schicht auf die Dienste der darunterliegenden, und zwar ohne zu wissen, wie diese die Dienstleistung erbringt. Der Datenstrom verläuft dabei in vertikaler Richtung.
Die logische Kommunikation erfolgt zwischen den jeweils gleichen Schichten der kommunizierenden Rechner mithilfe bestimmter Regeln zur Koordination der Kommunikation. Diese werden auch Protokolle genannt.
Der Zusammenhang zwischen dem vierschichtigen TCP/IP- Architekturmodell und dem siebenschichtigen ISO/OSI- Modell geht aus der nachfolgenden Tabelle hervor.
Zwischen Anwendungen der Anwendungsschicht des Rechners 1 und der des entfernten Rechners 2 verläuft die Kommunikation wie folgt:
Die Daten durchlaufen jede einzelne Schicht. Sie werden im lokalen Rechner heruntergereicht, wobei jede Schicht die empfangenen Daten als die zu übertragenden ansieht, zu denen sie ihre eigenen Kontrollinformationen als Kopfzeile (Header) voranstellt.
Im entfernten Rechner durchlaufen die Datenpakete denselben Weg von unten nach oben. Jede Schicht entfernt dabei wieder den für sie bestimmten Header und reicht die Daten an die darüber liegende weiter.
Die Netzzugangsschicht (Schicht 2 des ISO/OSI- Schichtenmodells)
Für die unterste Ebene, die Netzzugangsschicht, ist lediglich festgelegt, dass sich der Host unter Zuhilfenahme eines Protokolls mit dem Netzwerk verbinden muss, um IP- Pakete darüber zu versenden. Mögliche Protokolle sind z.Bsp. Ethernet, FDDI und ISDN. Die physikalische Übertragung kann dabei über ganz unterschiedliche Medien, z.Bsp. koaxiale Kupferkabel, Glasfaserkabel oder auch über Richtfunkstrecken erfolgen.
Die Internetschicht (Schicht 3 des ISO/OSI- Schichtenmodells)
Die Internetschicht hat die Aufgabe, den Hosts zu ermöglichen, Pakete in ein beliebiges Netzwerk einzuspeisen, den Adressierungsmechanismus zu regeln und eine Wegewahl zu treffen. Die Vermittlung zwischen einzelnen Netzwerken erfolgt dabei über so genannte Router. Hierbei handelt es sich um entsprechend konfigurierte Rechner, die für den Weg der Datenpakete zuständig sind.
Die einzelnen Pakete können sich ihren Weg unabhängig voneinander zum Ziel- Host suchen. Dies hat zur Folge, dass die Pakete nicht in der Reihenfolge eintreffen, in der sie verschickt wurden. In diesem Fall ist es Aufgabe der höheren Schichten, diese wieder zusammenzusetzen.
Die Transportschicht (Schicht 4 des ISO/OSI- Schichtenmodells)
Über der Internetschicht liegt die Transportschicht. Ihre Aufgabe ist es, eine Transportverbindung zwischen zwei Prozessen auf verschiedenen Rechnern zu ermöglichen. Für diese Schicht wurden zwei Protokolle als Standard definiert:
das Transmission Control Protocol (TCP) und das User Datagram Protocol (UDP)
Die Anwendungsschicht (Schicht 7 des ISO/OSI- Schichtenmodells)
Die über der Transportschicht angeordnete Anwendungsschicht realisiert die Schnittstelle zum Benutzer und stellt eine Reihe von anwendungsbezogenen, höheren Protokollen zur Verfügung.
Die Internetschicht und das IP- Protokoll
Das auf der Internetschicht angesiedelte Internet Protocol (IP) ist verantwortlich für die Beförderung der Datenpakete von einem Host zum anderen und kann daher auch der Schicht 3 (Vermittlungsschicht, network layer) des ISO/OSI- Modells zugeordnet werden.
Die beteiligten Hosts können sich entweder im selben oder in verschiedenen, über Router verbundenen physikalischen Netzwerken befinden.
Im Gegensatz zum datenstrom- und verbindungsorientierten TCP überträgt IP die Daten mittels verbindungsloser Kommunikation in Form von Datenpaketen, die in der TCP/IP- Terminologie auch Datagramme genannt werden.
Die Daten werden in kleinen Paketen über das Netz gesendet. Im Netzwerk können die einzelnen Datenpakete, die jeweils die komplette Empfängeradresse enthalten, ihr Ziel auf ganz unterschiedlichen Wegen und innerhalb von unterschiedlichen Übertragungszeiten zurücklegen. Auf dem Weg dorthin kann es wegen unterschiedlicher Netzwerkarchitekturen vorkommen, dass Pakete wiederholt fragmentiert werden müssen.
IP bekommt die Daten von übergeordneten Protokollschichten geliefert, die in Pakete zerteilt und mit einem IP- Header versehen werden. In diesem Header stehen alle Daten, die zum Versand der Pakete über das Internet erforderlich sind.
Das IP- Protokoll realisiert den hierzu erforderlichen einheitlichen Adressierungsmechanismus. Jeder über das Netz zugängliche Rechner muss über eine eindeutige, 32 Bit lange IP- Adresse verfügen.
Der Aufbau einer IP- Adresse
Eine IP- Adresse besteht immer aus zwei Teilen, der Netzwerkadresse und der Rechneradresse. In der dezimalen Schreibweise besteht eine IP- Adresse aus 4, durch Punkte getrennte Oktette, wobei ein Oktett jeweils 8 Bit der 32 Bit langen Gesamtadresse entspricht. Die kleinste IP- Adresse ist 0.0.0.0 und die höchste 255.255.255.255.
Der Netzwerkanteil der IP- Adresse kennzeichnet das Netzwerk. Alle Rechner des gleichen Netzwerks haben auch den gleichen Netzwerkanteil. Die Grenze zwischen Netzwerkanteil und Hostanteil befindet sich je nach Netzwerkklasse entweder nach dem ersten, zweiten oder dritten Oktett. Der Rechneranteil der IP- Adresse dient zur Identifikation eines bestimmten Rechners im Netzwerk.
Es werden fünf Adressklassen (Class A, B, C, D und E) unterschieden. Die Klassen D und E werden nur für Testzwecke benutzt und sind für die praktische Arbeit ohne Bedeutung.
Domänen
Da sich IP- Adressen nur schwer einprägen, wurden sowohl für die Netzwerke, als auch für die darauf befindlichen Rechner symbolische Namen eingeführt. Der Namensraum ist hierarchisch strukturiert. Die Wurzel des Hierarchiebaumes wird durch einen Punkt dargestellt.
Auf der nächsten Ebene befinden sich die Top- Level- Domains (TLD), z.Bsp. de für Deutschland. Anschliessend folgen, wieder durch Punkte abgetrennt, die symbolischen Namen des Netzwerks, bzw. deren Subnetzwerke, und zum Schluss folgt auf der untersten Hierarchieebene der symbolische Rechnername.
Die Verwaltung der Top- Level- Domains
Die Verwaltung der Top- Level- Domains wird auf Länderebene von hierfür jeweils zuständigen Organisationen wahrgenommen.
In Deutschland ist dies die DENIC, in der Schweiz SWITCH.
Zu den Aufgaben der TLD- Verwalter gehören:
Betrieb der Primary- Nameserver für die jeweilige Top- Level- Domain (de, ch, li, etc.) zentrale Vergabe von Domains unterhalb der TLD Administration des Internets in Zusammenarbeit mit internationalen Gremien Bereitstellung verschiedener Datenbankdienste Bereitstellung verschiedener Informationen, insbesondere zu rechtlichen Fragen bei der Domainvergabe und -verwaltung.
Es wird zwischen geografischen und organisatorischen TLDs unterschieden. Die geografischen Länderkennungen bestehen aus jeweils zwei Buchstaben, die in ISO-3166 festgelegt sind. In den USA sind darüber hinaus zusätzliche TLDs für Organisationen und Institutionen im Gebrauch.
Die Funktion des Domain Name Service (DNS)
Zur Verwaltung der Domains wurde der Domain Name Service (DNS) eingeführt. Der Domain Name Service arbeitet zonenorientiert. Eine Zone beginnt an einem Knotenpunkt im DNS- Baum und umfasst alle darunter liegenden Zweige. Ein Nameserver kann die Autorität über eine Subzone an einen weiteren Nameserver delegieren. Die Nameserver kennen die jeweilig benachbarten Nameserver der nächsthöheren beziehungsweise -tieferen Zone. Aus Sicherheitsgründen gibt es in jeder Zone mindestens zwei aktive Nameserver.
Die Transportschicht und das Transmission Control Protocol (TCP)
Das Transmission Control Protocol (TCP) ist das verbindungsorientierte Transportprotokoll oberhalb von IP und ist als solches der Schicht 4 (Transportschicht, transport layer) des ISO/OSI- Modells zuzuordnen. Es ist als Military Standard (MIL-STD) 1778 spezifiziert und baut direkt auf dem Internet Protocol (IP) auf.
TCP stellt einen voll-duplex, verbindungsorientierten, sequenziellen Datenübertragungsdienst zur Verfügung. Da TCP verlorene, duplizierte oder in falscher Reihenfolge auftretende Daten entdeckt und korrigiert, wird TCP im Gegensatz zu IP auch als zuverlässiger Dienst bezeichnet.
Durch ein Programm der Anwendungsschicht wird TCP zum Herstellen einer Verbindung beauftragt. TCP erhält die Daten vom Anwendungsprogramm als Datenstrom übertragen, teilt diese in maximal 64KB grosse Segmente ein und vergibt an jedes Segment einen eigenen Header.
Diese von einem TCP- Transport Protocol Port zu einem anderen beförderten, maximal 64KB grossen Segmente sind dabei nicht mit den Datenpaketen (Datagrammen) der Internetschicht zu verwechseln. Von den Benutzerprozessen der über der Transportschicht angesiedelten Anwendungsschicht wird die Segmentstruktur der Daten als kontinuierlicher Datenstrom von Oktetten (Bytes) wahrgenommen.
Daran anschliessend werden die Segmente an das Internet Protocol (IP) übergeben, das für die Erstellung der einzelnen Datagramme (Fragmentierung) und deren Versand zuständig ist.
Nach Ankunft der Datagramme beim Empfänger und nach dem Entfernen der Header werden diese wieder an TCP übergeben, das für die Aufarbeitung der Segmente, die Fehlerprüfung und die Übergabe in der richtigen Reihenfolge (Sequencing) als kontinuierlicher Datenstrom an ein Programm der Anwendungsschicht verantwortlich ist.
Aufbau von TCP- Verbindungen: Ports und Sockets
Das IP- Datenpaket wird mithilfe der IP- Adresse zum richtigen Empfänger geroutet und muss dort an den richtigen Anwendungsprozess übergeben werden. Mit dem Erreichen des Zielrechners wird zunächst anhand der im IP- Header ausgewiesenen Protokollnummer überprüft, an welches Transportprotokoll die Daten zu übergeben sind.
Die Protokollnummer 6 steht für TCP, 17 für UDP. Das Transportprotokoll muss die Daten dann an den richtigen Anwendungsprozess weiterleiten.
Dieser wird anhand der Port- Nummer, die im TCP- Segment Header steht, identifiziert. Die Kombination aus Portnummer und IP- Adresse heisst Socket, wobei ein kommunizierender Prozess über ein Socket- Paar eindeutig definiert wird.
Die Portnummern umfassen 16 Bit, so dass von einem Rechner maximal 65.535 unterschiedliche Ports realisiert sein können.
Um die Funktion von Portnummern besser zu verstehen, können Sie sich zum Vergleich das System des Fernsprechverkehrs bzw. eine Telefonanlage vorstellen: Die Portnummern entsprechen dabei den Rufnummern von Nebenstellenanlagen (Durchwahl), während die Netzadresse der Ortsvorwahl und die Host- Adresse der Rufnummer der Zentrale entspricht.
Für bestimmte, häufig benutzte Anwendungsprozesse sind feste Portnummern reserviert worden. So ist für WWW der Port 80, für FTP die Ports 20 und 21, für Telnet der Port 23 und für POP3 (Post Office Protocol) der Port 110 reserviert.
Die Protokolle der Anwendungsschicht
Die Anwendungsschicht bildet die Schnittstelle zum Benutzer. Sie umfasst eine ganze Reihe von höheren Protokollen. Als Standards wurden zunächst Dateitransfer (FTP), virtueller Terminalzugriff (Telnet) und elektronische Post (SMTP) definiert und im weiteren Entwicklungsverlauf durch weitere Protokolle (z.Bsp. HTTP) ergänzt.
Austausch von Hypertextdokumenten mit HTTP
Das heute für die Erstellung von Webanwendungen bei weitem wichtigste Protokoll der Anwendungsschicht ist das Hypertext Transfer Protocol (HTTP).
HTTP wurde für den Austausch von Hypertext- Dokumenten entwickelt. Es gibt zwei Versionen, 1.0 und 1.1, wobei die neuere Version 1.1 inzwischen zwar von den meisten Browsern (ab Version 4) verstanden wird, allerdings noch nicht allen HTTP- Servern zur Verfügung steht.
Das HTTP- Protocol setzt auf TCP/IP auf und regelt die Kommunikation zwischen WWW- Server und -Client. Das HTTP- Protocol legt dabei das Format, den Inhalt und die Abfolge von Mitteilung zwischen Client und Server fest. Da alle Mitteilungen als ASCII- Zeichenketten ausgetauscht werden, ist HTTP weitgehend plattformunabhängig.
HTTP ist ein verbindungsloses Protokoll, das bedeutet, dass Server und Client nach jedem Kommando den Prozess beenden und unabhängig vom Inhalt von jeweils übermittelten Statusmeldungen im weiteren Verlauf des Kommunikationsprozesses für jedes weitere Kommando einen erneuten Prozess starten.
Die Kommunikation zwischen WWW- Client und -Server erfolgt unter HTTP nach folgendem Schema:
Der Client sendet eine Request- Mitteilung an den Server. Diese wird vom Server mit einer Response- Mitteilung beantwortet. Das HTTP- Protokoll regelt dabei den Aufbau dieser Mitteilungen. Grundsätzlich bestehen alle HTTP- Mitteilungen aus einer Reihe von Headern sowie, durch eine Leerzeile abgetrennt, dem eigentlichen Inhalt.
Zum Senden einer Request- Mitteilung wird eine TCP/IP- Verbindung zum WWW- Server aufgebaut. Kann der Webserver die angeforderte Seite zur Verfügung stellen, wird das Dokument über dieselbe Verbindung zurückgesendet und die Verbindung wieder geschlossen.
Die Struktur eines HTTP- Requests
Der Request besteht aus einem URL (Uniform Resource Locator), dem Method- Token, den Header- Informationen sowie einem Entity- Body mit den zu versendenden Daten. der Aufbau eines Requests ist in drei Segmente unterteilt:
Der Method- Token beschreibt die auf das Dokument anzuwendenden Methoden. Folgende Methoden sind möglich:
HTTP- Requests beinhalten Header- Informationen, und zwar allgemeine Informationen (General Header) sowie weitere Informationen (Request Header und Entity Header). Die verschiedenen Header beinhalten dabei die folgenden Informationen:
Die für die Übertragung vorgesehenen Daten sind im Entity- Body enthalten. Dieser ist bei einem HTTP- Request jedoch in aller Regel leer.
Die Struktur einer HTTP- Response
Eine HTTP- Response ist ähnlich wie ein HTTP- Request aufgebaut, beinhaltet aber zusätzlich eine Status- Line und den Entity- Body, der das zu übertragende Dokument enthält.
Die Status- Line besteht aus bei einer HTTP- Response aus dem Statuscode und der Reason- Phrase, die eine kurze Erläuterung zum Statuscode enthält.
Die einzelnen Statuscodes und deren Bedeutung sind in folgender Tabelle zusammengestellt:
Weitere Protokolle der Anwendungsschicht
Dateitransfer mit FTP
FTP ist als MIL-STD 1780 spezifiziert und ermöglicht einen vom Betriebssystem unabhängigen Austausch von Dateien zwischen zwei entfernten Rechnern. FTP setzt auf TCP auf und nutzt den Port 20 für die FTP- Datenverbidung, bzw. Port 21 für FTP- Steuerverbindungen. Der FTP- Client hat die Möglichkeit, zwischen verschiedenen Datenformaten zu wählen (z.Bsp. ASCII oder binär).
Das einfachste Protokoll für den Austausch von elektronischer Post zwischen verschiedenen Rechnern ist SMTP. Der durch das SMTP- Protokoll geregelte Austausch von E-Mails läuft dabei wie folgt ab:
Der SMTP- Client baut eine TCP- Verbindung zum Port 25 des SMTP- Servers auf und wartet auf die Reaktion des Servers. Der SMTP- Server sendet eine Textzeile, über die er sich identifiziert und mitteilt, ob er bereit ist, Post zu empfangen. Antwortet der Server nicht, wird die Verbindung vom SMTP- Client aufgelöst.
Antwortet der SMTP- Server, gibt der SMTP- Client an, von wem die Nachricht stammt und an wen sie gesendet werden soll. Falls der Empfänger existiert, gibt der Server das Signal zum Senden der E-Mail. Der Client sendet anschliessend die E-Mail, was vom Server bestätigt werden muss. Nach dem Austausch der E-Mails wird die Verbindung wieder abgebaut.
Das derzeitige Standardprotokoll, mit dem E-Mail- Clients Nachrichten vom Server lesen, ist POP. Dieses Protokoll wurde bereits 1984 im Zusammenhang mit TCP/IP definiert. Aktuell ist derzeit die Version 3 (POP3).
Ein POP3- fähiger E-Mail- Client stellt die Verbindung zum POP3- Server her und löst die Übertragung der Nachrichten aus. Mit POP3 ist es möglich zu bestimmen, ob gelesene Nachrichten auf dem Server verbleiben oder nach der Übertragung gelöscht werden sollen. Die Löschung einer Nachricht ohne vorherige Übertragung ist ebenfalls möglich.
Ein erweitertes E-Mail- Protokoll, das wesentlich leistungsfähiger ist als POP3, steht in Form des IMAP- Protokolls zur Verfügung. Es wurde entwickelt, um Nachrichten nach Bedarf übertragen zu können. Unter Verwendung von IMAP kann - anders als bei POP3 - ausgewählt werden, welche Daten übertragen werden sollen. Dazu werden zunächst nur die Kopfzeilen übertragen.
Darüber hinaus können mit IMAP hierarchische Mailboxen direkt auf dem Server eingerichtet werden. Unter IMAP ist auch der Zugriff auf verschiedene Mailboxen während einer Verbindung möglich.
IMAP gestattet dem Client auch die Veränderung des Status einer Nachricht, um beispielsweise gelesene Mails als ungelesen zu markieren und umgekehrt, sowie das Speichern, Kopieren oder Löschen von Nachrichten direkt auf dem Server, ohne dass diese zuvor dem Client übermittelt werden müssen. Weitere Möglichkeiten von IMAP sind Suchoptionen auf dem Server zur Selektion von Nachrichten.
Das Protokoll Telnet ist im MIL-STD 1782 spezifiziert und ermöglicht den Zugriff auf die am Netz angeschlossenen Rechner in Form einer Terminalsitzung. Hierzu wird eine TCP- Verbindung über Port 23 aufgebaut. Telnet ermöglicht den Zugriff auf die Ressourcen eines entfernten Rechners, wobei der Rechner des Clients als Terminal dient. Bei einer Telnet- Verbindung arbeitet der Client so, als wäre er direkt an den entfernten Rechner angeschlossen, dessen Rechnerleistung und dessen Programme er nutzt.