Leseprobe - Pearson Studium

pearson.studium.de

Leseprobe - Pearson Studium

KAPITEL 3

Netzwerke und Internetworking

Verteilte Systeme verwenden LANs, WANs und miteinander verbundene Netzwerke

(„Internetworks“) für die Kommunikation. Leistung, Zuverlässigkeit, Skalierbarkeit,

Mobilität und Dienstgüte der zu Grunde liegenden Netzwerke beeinflussen das Verhalten

verteilter Systeme und damit auch ihren Entwurf. Änderungen der Benutzeranforderungen

haben zur Entwicklung von Funknetzwerken und Hochleistungsnetzwerken

mit garantierter Dienstgüte geführt.

Die Grundlagen, auf denen Computernetzwerke basieren, sind unter anderem die

Protokollschichten, die Paketvermittlung, das Routing und das Daten-Streaming

(Daten in Daten-Stream-Streams umwandeln). Internetworking-Techniken ermöglichen

die Integration heterogener Netzwerke. Das wichtigste Beispiel ist das Internet;

seine Protokolle werden fast überall in verteilten Systemen eingesetzt. Die Adressierungs-

und Routingschemata aus dem Internet haben dem Einfluss durch sein enormes

Wachstum standgehalten. Jetzt werden sie überarbeitet, sodass sie auf das

zukünftige Wachstum vorbereitet sind und damit sie neue Applikationsanforderungen

in Hinblick auf Mobilität, Sicherheit und Dienstgüte erfüllen.

Der Entwurf bestimmter Netzwerk-Technologien wird anhand von Fallstudien

beschrieben: Ethernet, ATM-Netzwerke (Asynchronous Transfer Mode) und der

Standard IEEE 802.11 für Funknetzwerke.

3.1 Einführung

Die in verteilten Systemen verwendeten Netzwerke setzen sich aus den unterschiedlichsten

Übertragungsmedien zusammen, unter anderem Draht, Kabel, Fiberglaskabel

und Funkkanäle; aus Hardwaregeräten wie beispielsweise Routern, Switches, Bridges,

Hubs, Repeatern und Netzwerkschnittstellen; sowie aus Software-Komponente-Komponenten,

wie beispielsweise Protokollstapel, Kommunikationsverarbeitungsroutinen

und Treibern. Die resultierende Funktionalität und Leistung, die verteilten Systemen

und entsprechenden Applikationsprogrammen geboten wird, wird von all diesen

Komponenten beeinflusst. Wir bezeichnen die Hardware- und Software-Komponente-Komponenten,

die Funktionsmerkmale für die Kommunikation in einem verteilten

System bereitstellen, als Kommunikations-Teilsystem. Die Computer und die

anderen Geräte, die ein Netzwerk zu Kommunikationszwecken verwendet, werden

als Hosts bezeichnet. Der Begriff Knoten bezieht sich auf einen Computer oder ein

Schaltgerät, der oder das an ein Netzwerk angeschlossen ist.

Das Internet ist ein einziges Kommunikations-Teilsystem, das die Kommunikation

zwischen allen daran angeschlossenen Hosts unterstützt. Das Internet setzt sich

aus vielen Teilnetzen zusammen, die unterschiedlichste Netzwerk-Technologien verwenden.

Ein Teilnetz ist eine Menge verbundener Knoten, die alle dieselbe Technolo-


90

Kapitel 3 – Netzwerke und Internetworking

gie verwenden, um miteinander zu kommunizieren. Die Infrastruktur des Internets

beinhaltet eine Architektur sowie Hardware- und Software-Komponente-Komponenten,

die letztlich die verschiedenen Teilnetze zu einem einzigen Datenkommunikationsdienst

zusammenfassen.

Der Entwurf eines Kommunikations-Teilsystems wird stark beeinflusst durch die

Eigenschaften der Betriebssysteme der Computer, aus denen sich das verteilte System

zusammensetzt, ebenso wie durch die Netzwerke, die sie verbinden. In diesem Kapitel

betrachten wir den Einfluss der Netzwerk-Technologien auf das Kommunikations-Teilsystem;

Betriebssystemaspekte werden in Kapitel 6 beschrieben.

Dieses Kapitel bietet einen einführenden Überblick über Computernetzwerke mit

Hinweisen auf die Kommunikationsanforderungen verteilter Systeme. Leser, die mit

Computernetzwerken nicht vertraut sind, sollten es als Grundlage für das restliche

Buch nutzen, während diejenigen, die bereits Erfahrung mit Netzwerken gesammelt

haben, feststellen werden, dass dieses Kapitel einen erweiterten Überblick über

Aspekte der Computernetzwerke bietet, die für verteilte Systeme relevant sind.

Computernetzwerke entstanden unmittelbar nach der Erfindung der Computer.

Die theoretische Grundlage für die Paketvermittlung wurde in einem Aufsatz von

Leonard Kleinrock [1961] vorgestellt. 1962 veröffentlichten J.C.R. Licklider und W.

Clark, die an der Entwicklung des ersten Timesharing-Systems am MIT Anfang der

sechziger Jahre beteiligt waren, einen Aufsatz über das Potential für die interaktive

Programmierung und WANs, der das Internet in vielerlei Hinsicht ankündigte [DEC

1990]. 1964 skizzierte Paul Baran einen praktischen Entwurf für zuverlässige und

effektive WANs (Wide Area Networks, Weitverkehrsnetze) [Baran 1964]. Weitere

Unterlagen sowie Links zur Geschichte der Computernetzwerke und des Internets

finden Sie in den folgenden Quellen: [www.isoc.org, Comer 1995, Kurose und Ross

2000].

Im restlichen Abschnitt geht es um die Kommunikationsanforderungen verteilter

Systeme. In Abschnitt 3.2 bieten wir einen Überblick über die Netzwerktypen, in

Abschnitt 3.3 eine Einführung in Netzwerkgrundlagen. Abschnitt 3.4 beschäftigt sich

mit dem Internet. Das Kapitel endet mit detaillierten Fallstudien über das Ethernet,

ATM- und IEEE 802.11 (WaveLAN)-Netzwerk-Technologien in Abschnitt 3.5.

3.1.1 Netzwerkaspekte für verteilte Systeme

Die ersten Computernetzwerke wurden entworfen, um einige wenige, relativ einfache

Applikationsanforderungen zu erfüllen. Sie unterstützten Netzwerk-Applikationen

wie beispielsweise Dateiübertragung, entfernte Anmeldung, E-Mail und Newsgroups.

Die nachfolgende Entwicklung verteilter Systeme mit der Unterstützung

verteilter Applikationsprogramme, die auf gemeinsam genutzte Dateien und andere

Ressourcen zugreifen, setzte den Leistungsstandard höher, um die Bedürfnisse interaktiver

Applikationen zu erfüllen.

In jüngster Zeit haben sich nach dem Wachstum und der Kommerzialisierung des

Internets sowie der Entwicklung zahlreicher neuer Verwendungsmodi strengere

Anforderungen in Hinblick auf Zuverlässigkeit, Skalierbarkeit, Mobilität und Sicherheit

sowie Dienstgüte entwickelt. In diesem Abschnitt definieren und beschreiben

wir diese Anforderungen.

Leistung Für unsere Zwecke sind die Leistungsparameter für Netzwerke von

besonderem Interesse, die die Geschwindigkeit beeinflussen, mit der einzelne Nachrichten

zwischen zwei verbundenen Computern übertragen werden können. Es han-


3.1 Einführung 91

delt sich dabei um die Latenz sowie die Punkt-zu-Punkt-Datenübertragungsgeschwindigkeit.

Latenz ist die Verzögerung, die auftritt, bis die Daten am Ziel zur Verfügung stehen,

nachdem eine Sende-Operation ausgeführt wurde. Sie kann gemessen werden

als die Zeit, die erforderlich ist, um eine leere Nachricht zu übertragen.

Datenübertragungsgeschwindigkeit ist die Geschwindigkeit, mit der Daten zwischen

zwei Computern im Netzwerk übertragen werden können, nachdem die Übertragung

begonnen hat. Sie wird normalerweise in Bit pro Sekunde angegeben.

Aus diesen Definitionen leitet sich die Zeit ab, die ein Netzwerk benötigt, um eine

Nachricht mit länge Bits zwischen zwei Computern zu übertragen:

Nachrichtenübertragungszeit = Latenz + länge/Datenübertragungsgeschwindigkeit

Die obige Gleichung gilt für Nachrichten, deren Länge nicht einen maximalen Wert

überschreitet, der durch die zu Grunde liegende Netzwerk-Technologie bestimmt

wird. Längere Nachrichten müssen unterteilt werden und die Übertragungszeit ist

die Summe der Zeiten für die einzelnen Segmente.

Die Übertragungsgeschwindigkeit eines Netzwerks wird hauptsächlich durch

seine physischen Eigenschaften bestimmt, während die Latenz hauptsächlich durch

Software-Overheads, Routing-Verzögerungen und ein lastabhängiges statistisches

Element bestimmt wird, das aus konfliktierenden Zugriffsanforderungen auf Übertragungskanäle

entsteht . Viele der zwischen Prozessen in einem verteilten System

übertragenen Nachrichten sind sehr klein; die Latenz ist deshalb häufig auch von

gleicher oder größerer Bedeutung als die Übertragungsgeschwindigkeit, was die

Leistung angeht.

Die Gesamtsystembandbreite eines Netzwerks ist ein Maß für den Durchsatz – die

Gesamtmenge des Verkehrs, der innerhalb einer bestimmten Zeit über das Netzwerk

übertragen werden kann. In vielen LAN-Technologien wie beispielsweise Ethernet

wird für jede Übertragung die vollständige Übertragungskapazität des Netzwerks

genutzt und die Systembandbreite ist gleich der Datenübertragungsgeschwindigkeit.

In den meisten WANs können die Netzwerknachrichten jedoch auf mehreren verschiedenen

Kanälen gleichzeitig übertragen werden und die Gesamtsystembandbreite

steht in keiner direkten Beziehung zu der Übertragungsgeschwindigkeit. Die

Leistung von Netzwerken sinkt bei Überlast – wenn zu viele Nachrichten gleichzeitig

im Netzwerk sind. Die genaue Auswirkung der Überlast auf die Latenz, die Datenübertragungsgeschwindigkeit

und die Gesamtsystembandbreite eines Netzwerks ist

stark von der verwendeten Netzwerk-Technologie abhängig.

Betrachten wir jetzt die Leistung der Client-/Server-Client-/Server-Kommunikation.

Die Zeit für die Übertragung einer kurzen Anforderungsnachricht und den

Empfang einer kurzen Antwort in einem wenig ausgelasteten lokalen Netzwerk zwischen

Standard-PCs oder UNIX-Systemen liegt normalerweise unter einer Millisekunde.

Dies kann mit der unter einer Mikrosekunde liegenden Zeit verglichen werden,

die für den Aufruf einer Operation für ein Objekt auf Applikationsebene

benötigt wird, das sich im lokalen Speicher des ausführenden Prozesses befindet.

Trotz der Fortschritte im Bereich der Netzwerkleistung bleibt die Zeit für den Zugriff

auf gemeinsam genutzte Ressourcen im selben Netzwerk um den Faktor 1.000 oder

mehr höher als der Zugriff auf Ressourcen, die sich im lokalen Speicher befinden.

Andererseits bringt der Zugriff über ein Hochgeschwindigkeitsnetzwerk auf einen


92

Kapitel 3 – Netzwerke und Internetworking

lokalen Webserver oder Datei-Server mit großem Cache häufig genutzter Dateien oft

dieselbe oder eine bessere Leistung als der Zugriff auf Dateien, die auf einer lokalen

Festplatte abgelegt sind, weil Netzwerk-Latenz und Bandbreite häufig die Festplattenleistung

übertreffen.

Im Internet liegen die durchschnittlichen Antwortzeit-Latenzen im Bereich von

300-600 ms, Aufrufe sind also etwa fünfhundertmal langsamer als für schnelle lokale

Netzwerke. Ein Großteil dieser Zeit ist Latenz, die durch Switching-Verzögerungen

auf Routern und Verbindungen für Netzwerkschaltkreise entsteht.

Abschnitt 6.5.1 beschreibt und vergleicht die Leistung lokaler und entfernter Operationen

im Detail.

Skalierbarkeit Computernetzwerke sind ein nicht mehr wegzudenkender Teil

der Infrastruktur moderner Gesellschaften. In Abbildung 1.4 zeigen wir den Anstieg

der Anzahl der an das Internet angeschlossenen Host-Computer über einen Zeitraum

von 20 Jahren auf. Die potentielle zukünftige Größe des Internets entspricht der Erdbevölkerung.

Man kann realistisch erwarten, dass es mehrere Milliarden Knoten und

Hunderte Millionen aktiver Hosts beinhalten wird.

Diese Zahlen weisen auf die enormen Änderungen in Hinblick auf Größe und

Auslastung hin, mit denen das Internet zurechtkommen muss. Die Netzwerk-Technologien,

auf denen es basiert, waren nicht einmal auf die aktuelle Größe des Internets

ausgelegt, dennoch weisen sie eine beachtenswert gute Leistung auf. Es sind

einige wesentliche Änderungen der Adressierungs- und Routingmechanismen

geplant, die der nächsten Wachstumsphase des Internets gerecht werden; sie sind in

Abschnitt 3.4 beschrieben.

Es gibt keine Zahlen zum Verkehr auf dem Internet, aber der Einfluss des Verkehrs

auf die Leistung kann anhand von Kommunikations-Latenzen geschätzt werden.

Interessante Zahlen zu aktuellen und historischen beobachteten Latenzen im

Internet finden Sie unter [www.mids.org]. Trotz häufiger Witze über das „World Wide

Wait“ scheinen diese Zahlen darauf hinzuweisen, dass sich die Netzwerk-Latenzen in

den letzten Jahren etwas reduziert haben, sodass sich eine durchschnittliche Antwortzeit

von 100 bis 150 ms ergibt. Gelegentlich entstehen größere Abweichungen, mit

Spitzen-Latenzen im Bereich von 400 ms, aber sie sind wahrscheinlich nicht der ausschlaggebende

Faktor, der für die von den Web-Benutzern erfahrenen Verzögerungen

verantwortlich ist. Für einfache Client-/Server-Client-/Server-Applikationen wie

beispielsweise das Web erwarten wir, dass der zukünftige Verkehr proportional zu

der Anzahl aktiver Benutzer steigt. Ob die Internet-Infrastruktur dazu in der Lage ist,

mit dieser Anzahl zurechtzukommen, hängt von der Wirtschaftlichkeit der Nutzung

ab, insbesondere von den Gebühren für die Benutzer und den tatsächlich auftretenden

Kommunikationsmustern – beispielsweise inwieweit die Kommunikation lokal

erfolgt.

Zuverlässigkeit Unsere Diskussion der Fehlermodelle in Abschnitt 2.3.2

beschreibt den Einfluss von Kommunikationsfehlern. Viele Applikationen können

Kommunikationsfehler kompensieren und benötigen deshalb keine garantiert fehlerfreie

Kommunikation. Das Ende-zu-Ende-Argument (Abschnitt 2.2.1) unterstützt

außerdem die Ansicht, dass das Kommunikations-Teilsystem keine wirklich fehlerfreie

Kommunikation bieten muss; die Erkennung von Kommunikationsfehlern und

ihre Korrektur wird häufig am besten durch Software auf Applikationsebene ausgeführt.

Die meisten physischen Übertragungsmedien sind sehr zuverlässig. Wenn Fehler

auftreten, werden sie größtenteils durch Timing-Fehler in der Software beim Sender

oder beim Empfänger verursacht (z.B. Fehler beim empfangenden Computer, ein


3.1 Einführung 93

Paket zu akzeptieren) oder durch einen Pufferüberlauf und nicht durch Fehler im

Netzwerk.

Sicherheit Kapitel 7 beschreibt die Anforderungen und Techniken, um Sicherheit

in verteilten Systemen zu erzielen. Die erste Verteidigungsmaßnahme, die von vielen

Unternehmen eingesetzt wird, ist der Schutz ihrer Netzwerke und der daran angeschlossenen

Computer durch eine Firewall. Eine Firewall erzeugt einen Schutzwall

zwischen dem Intranet des Unternehmens und dem restlichen Internet. Die Firewall

hat die Aufgabe, die Ressourcen aller Computer innerhalb des Unternehmens vor dem

Zugriff durch externe Benutzer oder Prozesse zu schützen und die Verwendung der

Ressourcen außerhalb der Firewall durch Benutzer im Unternehmen zu steuern.

Eine Firewall wird auf einem Gateway installiert – das ist ein Computer, der sich

am Netzwerkeingangspunkt zum Intranet eines Unternehmens befindet. Die Firewall

empfängt und filtert alle Nachrichten, die in ein Unternehmen hinein und aus ihm

heraus gesendet werden. Sie wird der Sicherheitsstrategie des Unternehmens entsprechend

konfiguriert und erlaubt, dass nur bestimmte ankommende und ausgehende

Nachrichten hindurchgelangen, während alle anderen zurückgewiesen werden.

Wir werden dieses Thema in Abschnitt 3.4.8 noch einmal aufgreifen.

Um verteilten Applikationen zu ermöglichen, die durch Firewalls auferlegten

Beschränkungen zu umgehen, muss eine sichere Netzwerkumgebung aufgebaut

werden, in der die meisten verteilten Applikationen eingesetzt werden können, mit

Ende-zu-Ende-Authentifizierung, Privatsphäre und Sicherheit. Diese detailliertere

und flexiblere Form der Sicherheit kann durch Verwendung von Verschlüsselungstechniken

erzielt werden. Normalerweise wird sie auf einer Ebene oberhalb des Kommunikations-Teilsystems

eingesetzt und deshalb erst in Kapitel 7 genauer beschrieben.

Ausnahmen sind unter anderem die Notwendigkeit, Netzwerk-Komponenten

wie etwa Router gegen unberechtigte Zugriffe zu schützen, oder die Notwendigkeit

sicherer Verbindungen zu mobilen Geräten und anderen entfernten Knoten, sodass

diese Teil eines sicheren Intranets sein können – das ist das Konzept des virtuellen privaten

Netzwerks (VPN), das in Abschnitt 3.4.8 beschrieben ist.

Mobilität In Kapitel 2 haben wir die Anforderungen beschrieben, die für verteilte

Systeme entstehen, um portable Computer und digitale Handheld-Geräte zu

unterstützen. Außerdem haben wir den Bedarf an Funknetzwerken angesprochen,

die benötigt werden, um eine stetige Kommunikation mit solchen Geräten zu

gewährleisten. Die Folgen der Mobilität gehen jedoch über den Bedarf an Funknetzwerken

hinaus. Mobile Geräte werden häufig an unterschiedlichen Positionen eingesetzt

und an geeigneten Anschlussstellen mit dem Netzwerk verbunden. Die Adressierungs-

und Routingschemata des Internets und anderer Netzwerke wurden vor

der Einführung der mobilen Geräte entwickelt. Obwohl die aktuellen Mechanismen

angepasst und erweitert wurden, um sie zu unterstützen, bedingt das erwartete

Wachstum bei der Verwendung mobiler Geräte weitere Erweiterungen.

Dienstgüte (Quality of Service) In Kapitel 2 haben wir die Dienstgüte definiert

als die Fähigkeit, bei der Übertragung und Verarbeitung von Streams mit Echtzeit-

Multimediadaten vorgegebene Zeiten einzuhalten. Damit entstehen wichtige neue

Anforderungen an Computernetzwerke. Applikationen, die Multimediadaten übertragen,

benötigen eine garantierte Bandbreite sowie begrenzte Latenzzeiten für die

von ihnen verwendeten Kommunikationskanäle. Einige Applikationen variieren

dynamisch in ihren Anforderungen und geben sowohl einen Mindestwert für eine

akzeptable Dienstgüte als auch ein gewünschtes Optimum an. Die Bereitstellung solcher

Garantien und ihre Wartung ist Thema von Kapitel 15.


94

Kapitel 3 – Netzwerke und Internetworking

Multicasting Ein Großteil der Kommunikation in verteilten Systemen erfolgt zwischen

Paaren von Prozessen, aber häufig braucht man auch eine 1:n-Kommunikation.

Sie kann durch Sende-Operationen an mehrere Ziele simuliert werden, aber das

bedeutet mehr Kosten als notwendig und bietet vielleicht nicht die Fehlertoleranz-

Eigenschaften, die die Applikation benötigt. Aus diesen Gründen unterstützen viele

Netzwerk-Technologien die gleichzeitige Übertragung von Nachrichten an mehrere

Empfänger.

3.2 Netzwerktypen

In diesem Abschnitt stellen wir die wichtigsten Netzwerktypen vor, die verteilte Systeme

unterstützen: LANs, WANs, MANs, Funknetzwerke und Internetworks.

Einige der Namen für die Netzwerktypen sind verwirrend, weil sie scheinbar nur

auf die physische Größe verweisen (LANs, WANs), aber sie beschreiben auch physische

Übertragungs-Technologien und Low-Level-Protokolle. Diese unterscheiden

sich für LANs und WANs, obwohl einige in jüngerer Zeit entwickelte Netzwerk-

Technologien wie beispielsweise ATM (Asynchronous Transfer Mode) sowohl für

LAN- als auch für WAN-Applikationen geeignet sind. Funknetzwerke unterstützen

auch LAN- und MAN-Übertragungen.

Netzwerke, die sich aus vielen verbundenen Netzwerken zusammensetzen und

so integriert sind, dass sie sich als einziges Datenkommunikationsmedium darstellen,

bezeichnen wir als Internetworks. Das Internet ist der Prototyp für ein Internetwork; es

besteht momentan aus Hunderttausenden von LANS, MANs und WANs. Eine detaillierte

Beschreibung seiner Implementierung finden Sie in Abschnitt 3.4.

LANs (Local Area Networks, lokale Netzwerke) LANs übertragen Nachrichten

mit relativ hoher Geschwindigkeit zwischen Computern, die an ein einziges Kommunikationsmedium

angeschlossen sind, wie beispielsweise verdrilltes Kupferkabel,

Koaxialkabel oder Fiberglaskabel. Ein Segment ist ein Kabelabschnitt, der eine Abteilung

oder ein Stockwerk eines Gebäudes unterstützt und an den viele Computer

angeschlossen sein können. Innerhalb eines Segments ist kein Routing der Nachrichten

erforderlich, weil das Medium direkte Verbindungen zwischen allen daran angeschlossenen

Computern verwendet. Die Gesamtsystembandbreite wird von den an

ein Segment angeschlossenen Computern gemeinsam genutzt. Größere lokale Netzwerke

wie beispielsweise für die Abdeckung eines Campus oder eines Bürogebäudes

setzen sich aus mehreren Segmenten zusammen, die über Switches oder Hubs miteinander

verbunden sind (siehe Abschnitt 3.3.7). In lokalen Netzwerken ist die

Gesamtsystembandbreite hoch und die Latenz gering, außer wenn eine sehr hohe

Verkehrslast vorliegt.

In den 70er Jahren wurden verschiedene LAN-Technologien entwikkelt – Ethernet,

Token Rings und segmentierte Ringe. Jede dieser Technologien stellt eine effektive

und leistungsfähige Lösung dar, aber Ethernet hat sich als die vorherrschende

Technologie für WANs herausgebildet. Es wurde Anfang der 70er Jahre mit einer

Bandbreite von 10 Mbps (Millionen Bits pro Sekunde) entwickelt und vor kurzer Zeit

auf 100 Mbps und 1.000 Mbps (1 Gigabit pro Sekunde) erweitert. Die Grundlagen für

den Betrieb von Ethernet-Netzwerken finden Sie in Abschnitt 3.5.1.

Es gibt sehr viele installierte LANs, die fast alle Arbeitsumgebungen unterstützen,

in denen mehr als ein oder zwei PCs oder Workstations eingesetzt werden. Ihre Leistung

ist im Allgemeinen ausreichend für die Implementierung verteilter Systeme und


3.2 Netzwerktypen 95

Applikationen. Die Ethernet-Technologie verfügt nicht über die Latenz- und Bandbreitengarantien,

die viele Multimedia-Applikationen benötigen. Um diese Lücke zu

füllen, wurden ATM-Netzwerke entwickelt, aber der dafür anfallende Kostenaufwand

hat verhindert, dass sie sich in LAN-Applikationen wirklich durchgesetzt

haben. Stattdessen wurden Hochgeschwindigkeits-Ethernets in einem geschalteten

Modus eingesetzt, der diese Nachteile zu einem wesentlichen Grad ausgleicht, wenn

auch nicht so effektiv wie ATM.

WANs (Wide Area Networks, Weitverkehrsnetzwerke) WANs übertragen Nachrichten

mit geringeren Geschwindigkeiten zwischen Knoten, die sich häufig in unterschiedlichen

Unternehmen befinden und zwischen denen große Distanzen liegen

können. Sie können sich in unterschiedlichen Städten, Ländern oder sogar Kontinenten

befinden. Das Kommunikationsmedium ist eine Menge aus Kommunikationsschaltungen,

die mehrere dedizierte Computer verbinden, die so genannten Router.

Sie verwalten das Kommunikationsnetzwerk und leiten Nachrichten oder Pakete an

ihre Ziele weiter. In den meisten Netzwerken führen die Routing-Operationen an

jedem Punkt in der Route eine Verzögerung ein, sodass die Gesamt-Latenz für die

Übertragung einer Nachricht von der Route abhängig ist, der sie folgt, sowie von der

Verkehrauslastung in den durchlaufenen Netzwerksegmenten. In heutigen Netzwerken

betragen diese Latenzen zwischen 0,1 und 0,5 Sekunden. Aktuelle Zahlen für das

Internet finden Sie unter [www.mids.org]. Die Geschwindigkeit elektronischer Signale

liegt in den meisten Medien nahe der Lichtgeschwindigkeit, wodurch eine Untergrenze

für die Übertragungs-Latenzen von Langstreckennetzwerken festgelegt wird.

Beispielsweise wird ein elektronisches Signal von Europa nach Australien in etwa

0,13 Sekunden übertragen. Übertragungen, die über einen geostationären Satelliten

gehen, unterliegen einer Weitergabeverzögerung von schätzungsweise 0,20 Sekunden.

Bandbreiten, die bei Verbindungen über das Internet zur Verfügung stehen, variieren

stark. In einigen Ländern werden Geschwindigkeiten von 1-2 Mbps über Teile

des Internets erreicht, aber auch Geschwindigkeiten von 10 bis 100 Kbps sind durchaus

üblich.

MANs (Metropolitan Area Networks, Regionalnetze) Dieser Netzwerktyp

basiert auf der Kupfer- und Glasfaserverkabelung mit hoher Bandbreite, die seit einiger

Zeit in bestimmten Städten für die Übertragung von Video, Voice und anderen

Daten über bis zu 50 Kilometer installiert wurde. Diese Verkabelung kann genutzt

werden, um Datenübertragungsgeschwindigkeiten zu erzielen, die mit den Anforderungen

verteilter Systeme kompatibel sind. Für die Implementierung des Datenroutings

in MANs wurde eine Vielzahl an Technologien eingesetzt, von Ethernet bis

ATM. Die IEEE hat die Spezifikation 802.6 [IEEE 1994] veröffentlicht, die insbesondere

auf die Bedürfnisse von MANs hin ausgelegt ist; Implementierungen davon

sind in Entwicklung. MANs befinden sich noch in den Kinderschuhen, aber sie werden

sehr wahrscheinlich Anforderungen erfüllen, die denen von LANs entsprechen,

während sie dabei größere Distanzen abdecken.

Die DSL- (Digital Subscriber Line) und Kabelmodem-Verbindungen, die es heute

in den Städten einiger Länder gibt, sind ein Beispiel dafür. DSL verwendet normalerweise

ATM-Switches (Abschnitt 3.5.3), die sich in Telefonschaltstellen befinden, um

digitale Daten auf gedrillte Kupferkabel (wie die Verdrahtung von Telefonverbindungen)

in den Wohnungen oder Büros der Benutzer zu leiten und das mit einer

Geschwindigkeit im Bereich zwischen 0,25 und 6,0 Mbps. Die Verwendung von

gedrilltem Kupferkabel für DSL-Verbindungen begrenzt ihre Reichweite auf etwa


96

Kapitel 3 – Netzwerke und Internetworking

1,5 km von der Schaltstelle aus. Kabelmodem-Verbindungen verwenden analoge Signale

auf Kabel-TV-Netzwerken, um Geschwindigkeiten von 1,5 Mbps über Koaxialkabel

und mit einer wesentlich größeren Reichweite als DSL zu erreichen.

Funknetzwerke Die bequeme Verbindung portabler und Handheld-Geräte

bedingt eine Funkkommunikation, wie in Kapitel 2 bereits beschrieben. In jüngster

Zeit haben sich viele digitale Funkkommunikations-Technologien entwickelt. Einige

davon wie beispielsweise IEEE 802.11 (WaveLan) unterstützen eine Datenübertragung

von 2 bis 11 Mbps über 150 m; es handelt sich dabei um Funk-LANs (WLANs,

Wireless Local Area Networks), die für die Verwendung anstelle von verdrahteten

LANs vorgesehen sind. Andere sind darauf ausgelegt, mobile Geräte mit anderen

mobilen Geräten oder fixen Geräten in derselben unmittelbaren Nachbarschaft zu

verbinden, beispielsweise um sie mit lokalen Druckern oder anderen Palmtops oder

Desktop-Computern zu verbinden. Man spricht hier auch von WPANs (Wireless Personal

Area Networks); Beispiele dafür sind unter anderem Infrarot-Verbindungen,

die in vielen Palmtop- und Laptop-Computern eingebaut sind, sowie die BlueTooth

Niederspannungs-Funknetzwerk-Technologie [www.bluetooth.com], die eine Datenübertragung

bei 1-2 Mbps über 10 m unterstützt. Viele Mobiltelefonnetzwerke basieren

auf digitalen Funknetzwerk-Technologien, unter anderem auch der europäische

GSM-Standard (Global System for Mobile Communication), der in den meisten Ländern

der Welt eingesetzt wird. In den USA basieren die meisten Mobiltelefone

momentan auf dem analogen AMPS-Mobilfunkzellennetzwerk; CDPD (Cellular

Digital Packet Data) ist eine digitale Kommunikationseinrichtung, die darauf aufsetzt.

Mobile Telefonnetzwerke sind darauf ausgelegt, über weite Bereiche (normalerweise

ganze Länder oder Kontinente) zu arbeiten; ihre Datenübertragungsfunktionen

unterstützen deshalb weit reichende mobile Verbindungen zum Internet für portable

Geräte. Die oben erwähnten Zellularnetzwerke bieten relativ geringe Datengeschwindigkeiten

– 9,6 bis 19,2 kbps, aber es sind Nachfolgernetzwerke mit einer

Datenübertragungsgeschwindigkeit im Bereich von 128 kbps bis 384 kbps für Zellen

mit einigen Kilometern Radius und bis zu 2 Mbps für kleinere Zellen geplant.

Wegen der beschränkten Bandbreite und anderer Einschränkungen portabler

Geräte, beispielsweise die winzigen Bildschirme, wurden mehrere Protokolle entwickelt,

die auch als WAP (Wireless Application Protocol) bezeichnet werden und die

speziell auf die Verwendung in portablen Geräten ausgelegt sind [www.wapformu.org].

Internetworks Ein Internetwork ist ein Kommunikations-Teilsystem, in dem

mehrere Netzwerke verbunden sind, um gemeinsame Datenkommunikationsfunktionen

zu bieten, die die Technologien und Protokolle der einzelnen Komponentennetzwerke

sowie die Methoden für ihre wechselseitige Verbindung verbergen.

Internetworks werden für die Entwicklung erweiterbarer, offener verteilter Systeme

benötigt. Die offene Natur verteilter Systeme bedingt, dass die dort verwendeten

Netzwerke so erweitert werden können, dass sie eine sehr große Anzahl an Computern

unterstützen, während die einzelnen Netzwerke einen eingeschränkten

Adressraum haben und zum Teil auch Leistungsbeschränkungen, die der Verwendung

für große Systeme entgegenstehen. In Internetworks kann eine Vielzahl von

LAN- und WAN-Technologien zum Teil auch von unterschiedlichen Herstellern integriert

werden, um die Netzwerkkapazität zu bieten, die von den einzelnen Benutzergruppen

benötigt wird. Internetworks sorgen also dafür, dass die Kommunikation in

verteilten Systemen von vielen der Vorteile offener Systeme profitieren kann.


3.2 Netzwerktypen 97

Internetworks werden aus einer Vielzahl von Komponentennetzwerken aufgebaut.

Sie sind verbunden durch dedizierte Switching-Computer, so genannte Router und

allgemeine Computer, so genannte Gateways; ein integriertes Kommunikations-Teilsystem

wird erzeugt durch eine Softwareschicht, die die Adressierung und Übertragung

von Daten an Computer im gesamten Internetwork realisiert. Das Ergebnis

kann man sich als „virtuelles Netzwerk“ vorstellen, das durch die Überlagerung

einer Internetwork-Schicht über ein Kommunikationsmedium entsteht, das sich aus

den zu Grunde liegenden Netzwerken, Routern und Gateways zusammensetzt. Das

Internet ist das beste Beispiel für ein Internetwork und seine TCP/IP-Protokolle sind

das beste Beispiel für die oben beschriebene Integrationsschicht.

Abbildung 3.1

Netzwerktypen

Reichweite Bandbreite (Mbps) Latenz (ms)

LAN 1-2 km 10-10.000 1-10

WAN Weltweit 0,010-600 100-500

MAN 2-50 km 1-150 10

Wireless LAN 0,15-1,5 km 2-11 5-20

Wireless WAN Weltweit 0,010-2 100-500

Internet Weltweit 0,010-2 100-500

Netzwerkvergleiche Abbildung 3.1 zeigt die Reichweiten und Leistungseigenschaften

der verschiedenen oben beschriebenen Netzwerktypen. Zusätzliche Vergleichsaspekte,

die für verteilte Systeme relevant sind, sind die Häufigkeit und die Art der

Fehler, die in den verschiedenen Netzwerktypen zu erwarten sind. Die Zuverlässigkeit

der zu Grunde liegenden Datenübertragungsmechanismen ist in allen Netzwerktypen

sehr hoch, bis auf die Funknetzwerke, bei denen Pakete auf Grund der extremen

Störungen häufig verloren gehen. In allen Netzwerktypen können Pakete auf

Grund von Verarbeitungsverzögerungen oder einem Pufferüberlauf im Ziel verloren

gehen. Das ist die bei weitem häufigste Ursache für einen Paketverlust.

Pakete können in einer anderen Reihenfolge ausgeliefert werden als sie verschickt

wurden. Das gilt nur für Netzwerke, in denen separate Pakete einzeln geroutet werden

– grundsätzlich WANs. Doppelte Kopien von Paketen können ebenfalls ausgeliefert

werden, aber das ist normalerweise eine Folge davon, wenn der Sender annimmt,

ein Paket sei verloren gegangen. Das Paket wird erneut übertragen und sowohl das

Original als auch die erneut übertragene Kopie können am Ziel auftauchen.

Alle oben beschriebenen Fehler werden in TCP maskiert, ebenso wie in den meisten

anderen so genannten zuverlässigen Protokollen, sodass die Applikationsprogramme

davon ausgehen können, dass alles, was übertragen wurde, von dem Prozess,

an den es gesendet wurde, auch empfangen wird. Es gibt jedoch gute Gründe,

für einige Aufgabenstellungen in verteilten Systemen weniger zuverlässige Protokolle

einzusetzen, wie beispielsweise UDP. In diesen Situationen müssen Applikationsprogramme

mögliche Fehler berücksichtigen.


98

Kapitel 3 – Netzwerke und Internetworking

3.3 Netzwerkgrundlagen

Die Grundlage für Computernetzwerke ist die Paketvermittlungstechnik, die in den

60er Jahren entwickelt wurde. Die Paketvermittlung war ein radikaler Schritt über

die zuvor geschalteten Telekommunikationsnetzwerke hinaus, die für Telefonie- und

Telegrafie-Kommunikation verwendet wurden; sie nutzt aus, dass Computer die

Daten während der Übertragung speichern können. Auf diese Weise können Pakete,

die an unterschiedliche Ziele adressiert sind, eine einzige Kommunikationsverbindung

verwenden. Die Pakete werden in einen Puffer gestellt und dann übertragen,

sobald die Verbindung zur Verfügung steht. Die Kommunikation ist asynchron –

Nachrichten kommen an ihrem Ziel nach einer Verzögerung an, die in Abhängigkeit

von der Zeit variiert, die Pakete im Netzwerk unterwegs sind.

3.3.1 Paketübermittlung

In den meisten Anwendungen von Computernetzwerken werden logische Informationseinheiten

oder Nachrichten übertragen – das sind Abfolgen von Datenelementen

beliebiger Länge. Bevor jedoch eine Nachricht übertragen wird, wird sie in Pakete zerlegt.

Die einfachste Form eines Pakets ist eine Abfolge binärer Daten (ein Feld mit Bits

oder Bytes) begrenzter Länge zusammen mit Adressinformationen, die ausreichen,

um Quell- und Zielcomputer zu identifizieren. Pakete begrenzter Länge werden

benutzt:

õ

õ

damit jeder Computer im Netzwerk ausreichend viel Pufferspeicher reservieren

kann, um das größte mögliche ankommende Paket aufzunehmen;

um die übermäßigen Verzögerungen zu vermeiden, die auftreten können, wenn

darauf gewartet werden muss, dass Kommunikationskanäle frei werden, wenn

lange Nachrichten übertragen werden, die nicht unterteilt sind.

3.3.2 Daten-Streaming

Es gibt wichtige Ausnahmen von der Regel, dass die auf Nachrichten basierende

Kommunikation die meisten Bedürfnisse von Applikationen erfüllt. In Kapitel 2

haben wir bereits erwähnt, dass Multimedia-Applikationen auf der Übertragung von

Streams aus Audio- und Video-Datenelementen mit garantierter Geschwindigkeit

und begrenzten Latenzen basieren. Solche Streams unterscheiden sich wesentlich von

dem nachrichtenbasierten Verkehr, für den die Paketübermittlung entworfen wurde.

Das Streaming von Audio und Video bedingt sehr viel höhere Bandbreiten als die

meisten anderen Kommunikationsformen in verteilten Systemen.

Die Übertragung eines Video-Streams für die Echtzeitanzeige bedingt eine Bandbreite

von etwa 1,5 Mbps bei komprimierten Daten oder 120 Mbps bei nicht komprimierten

Daten. Darüber hinaus ist der Datenfluss fortlaufend, im Gegensatz zu dem

intermittierenden Verkehr, der durch typische Client-/Server-Client-/Server-Kommunikationen

entsteht. Die Abspielzeit eines Multimedia-Elements ist die Zeit, zu der

es angezeigt (bei einem Video-Element) oder in Audio umgewandelt (für ein Sound-

Sample) werden muss. In einem Stream mit Video-Frames beispielsweise, der 24 Einzelbilder

pro Sekunde verwendet, hat der Frame N eine Abspielzeit, die N/24 Sekunden

nach der Startzeit des Streams liegt. Elemente, die nach ihrer Abspielzeit an

ihrem Ziel eintreffen, sind nicht mehr sinnvoll und werden vom empfangenden Prozess

verworfen.


3.3 Netzwerkgrundlagen 99

Die rechtzeitige Auslieferung solcher Daten-Stream-Streams ist von der Verfügbarkeit

von Verbindungen mit garantierter Dienstgüte abhängig – Bandbreite, Latenz

und Zuverlässigkeit müssen garantiert sein. Es muss möglich sein, einen Kanal von

der Quelle zum Ziel eines Multimedia-Streams einzurichten, mit einer vordefinierten

Route durch das Netzwerk, eine reservierte Ressourcenmenge in jedem Knoten, die

er durchläuft, sowie gegebenenfalls Puffer, um etwaige Unregelmäßigkeiten im Fluss

der Daten durch den Kanal zu kompensieren. Die Daten können dann mit der

geforderten Geschwindigkeit vom Sender an den Empfänger im Kanal übertragen

werden.

ATM-Netzwerke (Abschnitt 3.5.3) sind speziell darauf ausgelegt, hohe Bandbreiten

und geringe Latenzen zu bieten und durch die Reservierung von Netzwerk-Ressourcen

Dienstgüte zu unterstützen. IPv6, das neue Netzwerk-Protokoll für das Internet,

das in den nächsten zehn Jahren zum Einsatz kommen soll (siehe Abschnitt

3.4.4), beinhaltet Funktionsmerkmale, die ermöglichen, dass jedes IP-Paket, das Teil

eines Echtzeit-Streams ist, unabhängig von anderen Daten auf Netzwerkebene identifiziert

werden kann.

Kommuniktions-Teilsysteme, die Dienstgüte-Garantien bieten, bedingen Maßnahmen

für die Vorab-Reservierung von Netzwerk-Ressourcen und die Erzwingung

dieser Reservierungen. RSVP (Resource Reservation Protocol) [Zhang et al. 1993]

ermöglicht Applikationen, die Vorab-Reservierung von Bandbreite für Echtzeit-

Daten-Stream-Streams abzustimmen. RTP (Real Time Transport Protocol) [Schulzrinne

et al. 1996] ist ein Datenübertragungs-Protokoll auf Applikationsebene, das in

jedem Paket Details zur Abspielzeit sowie weitere Timing-Anforderungen angibt. Die

Verfügbarkeit effektiver Implementierungen dieser Protokolle im Internet ist von

wesentlichen Änderungen der Transport- und Netzwerkschichten abhängig. Kapitel

15 beschreibt die Anforderungen verteilter Multimedia-Applikationen im Detail.

3.3.3 Vermittlungsschemata

Ein Netzwerk besteht aus mehreren Knoten, die über Schaltungen verbunden sind.

Um Informationen zwischen zwei beliebigen Knoten zu übertragen, braucht man ein

Vermittlungssystem. Wir definieren hier vier Vermittlungstypen, die in Computernetzwerken

verwendet werden.

Broadcast Das Broadcasting ist eine Übertragungstechnik, für die keine Vermittlung

erforderlich ist. Alles wird an jeden Knoten übertragen, und es bleibt dem

Empfänger überlassen, die Nachrichten zu erkennen, die für ihn vorgesehen sind.

Einige LAN-Technologien, beispielsweise Ethernet, basieren auf dem Broadcasting.

Funknetzwerke basieren notwendigerweise auf Broadcasting, aber durch das Fehlen

fester Schaltungen sind die Broadcasts so angeordnet, dass sie die in Zellen gruppierten

Knoten erreichen.

Durchschaltevermittlung Am Anfang waren die Telefonnetzwerke die einzigen

Telekommunikationsnetzwerke. Ihr Betrieb war leicht verständlich: wenn ein Anrufer

eine Nummer wählte, wurden die Kabelpaare von seinem Telefon zur lokalen Vermittlungsstelle

durch einen automatischen Vermittler in der Vermittlungsstelle mit

den Kabelpaaren des Telefons des anderen Teilnehmers verbunden. Für ein Ferngespräch

war die Vorgehensweise ähnlich, aber die Verbindung wurde durch mehrere

dazwischenliegende Vermittlungsstellen bis zum Ziel geschaltet. Dieses System wird

manchmal auch als POTS (Plain Old Telephone System) bezeichnet. Dabei handelt es

sich um ein typisches durchschaltvermitteltes Netzwerk.


100

Kapitel 3 – Netzwerke und Internetworking

Paketvermittlung Die Einführung von Computern und digitaler Technologie

brachte zahlreiche neue Möglichkeiten für die Telekommunikation mit sich. Auf der

grundlegenden Ebene brachte sie Verarbeitung und Speicher. Sie machte es möglich,

Kommunikationsnetzwerke auf ganz andere Weise aufzubauen. Dieser neue Kommunikationsnetzwerktyp

wird auch als Speicher- und Verarbeitungsnetzwerk bezeichnet.

Statt Verbindungen einzurichten und abzubauen, um Schaltungen zu erstellen,

gibt ein Speicher- und Verarbeitungsnetzwerk Pakete nur von ihrer Quelle zu ihrem

Ziel weiter. An jedem Vermittlungsknoten (wo mehrere Schaltungen miteinander

verbunden werden müssen) wird ein Computer platziert. Ein Paket, das bei einem

Knoten ankommt, wird zunächst im Speicher des Computers an diesem Knoten

abgelegt und dann von einem Programm verarbeitet, das es an sein Ziel weitergibt,

indem eine ausgehende Schaltung gewählt wird, die das Paket auf einen anderen

Knoten überträgt, der näher am endgültigen Ziel liegt.

Hier gibt es eigentlich nichts Neues: das Postsystem ist ein Speicher- und Verarbeitungsnetzwerk

für Briefe, wobei die Verarbeitung durch Menschen oder Maschinen

in Postverteilzentren erfolgt. Datenpakete in einem Computernetzwerk können

jedoch in den Knoten so schnell gespeichert und weitergegeben werden, dass der

Eindruck entsteht, als würden sie unmittelbar weitergegeben. Das schien zumindest

der Fall zu sein, bis die Leute dachten (sogar die Telefonie-Ingenieure), dass es nett

sein könnte, auch Audio- und Video-Informationen über Computernetzwerke zu

übertragen. Die Vorteile dieser Integration können immens sein – man braucht nur

noch ein einziges Netzwerk, um Computerkommunikation, Telefondienste, TV- und

Radioübertragungen sowie Applikationen wie beispielsweise Telekonferenzen zu

realisieren. Weil alles in digitaler Form dargestellt wird, kann es jederzeit manipuliert

oder gespeichert werden. Aus solchen integrierten Telekommunikationssystemen

werden zweifellos zahlreiche neue Applikationen entstehen.

Frame-Relay Die Speicher- und Verarbeitungs-Übertragung von Paketen erfolgt

nicht unverzüglich. Es dauert normalerweise eine Zeitspanne von etwa ein paar

Zehntel Mikrosekunden bis zu ein paar Millisekunden, ein Paket durch die einzelnen

Netzwerkknoten zu schalten, abhängig von der Paketgröße, der Hardwaregeschwindigkeit

und dem restlichen Verkehrsaufkommen. Pakete müssen möglicherweise

durch mehrere Knoten geroutet werden, bevor sie ihr Ziel erreichen. Ein Großteil des

Internets basiert auf Speicher- und Verarbeitungs-Vermittlungen und wie wir bereits

gesehen haben, benötigen selbst kleine Internetpakete normalerweise etwa 200 Millisekunden,

um ihr Ziel zu erreichen.

Verzögerungen dieser Größe sind viel zu lang für Anwendungen wie beispielsweise

die Telefonie, wo Verzögerungen von weniger als 50 Millisekunden benötigt

werden, um eine unterbrechungsfreie Kommunikation am Telefon zu realisieren.

Weil die Verzögerung additiv ist – je mehr Knoten ein Paket durchläuft, desto mehr

wird es verzögert – und weil ein Großteil der Verzögerung an jedem Knoten aus den

Faktoren stammt, die der Paketvermittlungs-Technologie inhärent sind, scheint das

ein ernsthaftes Hindernis für die Integration zu sein.

Telefon- und Computernetzwerk-Ingenieure ließen sich jedoch nicht so schnell

entmutigen. Sie erfanden eine weitere Vermittlungsmethode – Frame-Relay –, die

einen Teil der Vorteile der durchschaltevermittelten in die paketvermittelten Netzwerke

einfließen ließ. Das Resultat sind ATM-Netzwerke. Wir beschreiben ihren

Betrieb in Abschnitt 3.5.3. Sie kompensieren die Verzögerungsprobleme, indem sie

kleine Pakete (so genannte Frames) dynamisch vermitteln. Die Vermittlungsknoten

(wobei es sich normalerweise um spezielle parallele digitale Prozessoren handelt)


3.3 Netzwerkgrundlagen 101

Abbildung 3.2

Konzeptuelle Schichten der Protokoll-Software

routen Frames abhängig von deren ersten beiden Bits. Als Resultat kann die ATM-

Technologie Pakete über Netzwerke, die aus mehreren Knoten bestehen, in ein paar

Zehntel Mikrosekunden übertragen.

3.3.4 Protokolle

Der Begriff Protokoll beschreibt eine bekannte Menge aus Regeln und Formaten, die für

die Kommunikation zwischen Prozessen genutzt werden, um eine bestimmte Aufgabe

zu erledigen. Die Definition eines Protokolls besteht aus zwei wichtigen Teilen:

õ die Spezifikation der Reihenfolge, in der die Nachrichten ausgetauscht werden

müssen;

õ eine Spezifikation des Formats der Daten in den Nachrichten.

Die Existenz allgemein gebräuchlicher Protokolle erlaubt, dass einzelne Software-

Komponenten verteilter Systeme unabhängig voneinander entwickelt und in unterschiedlichen

Programmiersprachen auf Computern mit unterschiedlichen Steuercodes

und Datendarstellungen implementiert werden.

Abbildung 3.3

Kapselung in geschichteten Protokollen


102

Kapitel 3 – Netzwerke und Internetworking

Ein Protokoll wird durch ein Paar von Softwaremodulen implementiert, die sich im

sendenden und im empfangenden Computer befinden. Beispielsweise überträgt ein

Transport-Protokoll Nachrichten beliebiger Länge von einem sendenden zu einem

empfangenden Prozess. Ein Prozess, der eine Nachricht an einen anderen Prozess

übertragen will, ruft ein Transport-Protokollmodul auf und übergibt ihm die Nachricht

im angegebenen Format. Die Transport-Software übernimmt die Übertragung

der Nachricht an ihr Ziel, wobei sie diese in Pakete einer bestimmten Größe zerlegt

und in ein Format bringt, das über das Netzwerk-Protokoll an das Ziel übermittelt werden

kann – ein weiteres Protokoll, das sich auf einer tiefer liegenden Schicht befindet.

Das entsprechende Transport-Protokollmodul im empfangenden Computer nimmt

das Paket über das Protokollmodul auf der Netzwerkschicht entgegen und führt die

umgekehrte Umwandlung durch, um die Nachricht wiederherzustellen, bevor sie an

den empfangenden Prozess weitergegeben wird.

Protokollschichten Netzwerk-Software ist in einer Schichtenhierarchie organisiert.

Jede Schicht stellt eine Schnittstelle zu weiter oben liegenden Schichten bereit,

die die Eigenschaften des zu Grunde liegenden Kommunikationssystems erweitert.

Eine Schicht wird in jedem an das Netzwerk angeschlossenen Computer durch ein

Modul dargestellt. Abbildung 3.2 zeigt die Struktur und den Fluss der Daten, wenn

eine Nachricht über ein geschichtetes Protokoll übertragen wird. Jedes Modul scheint

direkt mit einem Modul derselben Schicht im anderen Computer im Netzwerk zu

kommunizieren, aber in Wirklichkeit werden die Daten nicht zwischen den Protokollmodulen

der einzelnen Schichten übertragen. Stattdessen kommuniziert jede

Schicht der Netzwerk-Software durch lokale Prozeduraufrufe mit der jeweils darüber

und darunter liegenden Schicht.

Auf der sendenden Seite nimmt jede Schicht (außer der obersten oder Applikationsschicht)

Datenelemente in einem vorgegebenen Format von der darüber liegenden

Ebene entgegen und wendet Umwandlungen darauf an, um die Daten in das für

diese Ebene vorgegebene Format einzukapseln, bevor sie die Daten zur weiteren Verarbeitung

an die darunter liegende Schicht weitergibt. Abbildung 3.3 zeigt diesen

Prozess für die oberen vier Schichten der OSI-Protokollfolge. Die Abbildung zeigt die

Paket-Header, die die meisten netzwerkrelevanten Datenelemente enthalten, aber der

Klarheit halber wurden die Anhängsel weggelassen, die für einige Pakettypen verwendet

werden; außerdem wird dort vorausgesetzt, dass die zu übertragende Applikationsschicht-Nachricht

kürzer ist als die maximale Paketgröße des zu Grunde liegenden

Netzwerks. Andernfalls müsste es in mehrere Netzwerkschicht-Pakete

eingekapselt werden. Auf der empfangenden Seite werden die entgegengesetzten

Umwandlungen von der darunter liegenden Schicht auf die Daten angewendet,

bevor sie an die darüber liegende Schicht weitergegeben werden. Der Protokolltyp

der darüber liegenden Schicht wird in den Header jeder Schicht aufgenommen,

sodass der Protokollstapel beim Empfänger die richtigen Software-Komponenten

auswählen kann, um das Paket zu entpacken.

Damit bietet jede Schicht einen Dienst für die darüber liegende Schicht und erweitert

den von der darunter liegenden Schicht bereitgestellten Dienst. Ganz unten befindet

sich die Bitübertragungsschicht. Sie wird durch ein Kommunikationsmedium implementiert

(Kupfer- oder Fiberglaskabel, Satellitenkommunikationskanäle oder

Funkübertragung) und durch analoge Signalschaltkreise, die auf dem sendenden

Knoten Signale auf das Kommunikationsmedium schicken und sie auf dem empfangenden

Knoten abgreifen. Auf empfangenden Knoten werden Datenelemente entgegengenommen

und in der Hierarchie der Softwaremodule nach oben weitergereicht


3.3 Netzwerkgrundlagen 103

Abbildung 3.4

Protokollschichten im ISO OSI-Protokollmodell (Open Systems Interconnection)

und dabei entsprechend umgewandelt, bis sie sich in einem Format befinden, das an

den betreffenden Empfänger-Prozess weitergegeben werden kann.

Protokollfolgen Eine vollständige Menge von Protokollschichten wird auch als

Protokollfolge oder Protokollstapel bezeichnet, was sich auf die Schichtstruktur bezieht.

Abbildung 3.4 zeigt einen Protokollstapel, der dem Sieben-Schichten-Referenzmodell

für OSI (Open Systems Interconnection) entspricht, das von der ISO (International Standards

Organization) übernommen wurde [ISO 1992]. Das OSI-Referenzmodell wurde

übernommen, um die Entwicklung von Protokollstandards zu unterstützen, die den

Anforderungen offener Systeme genügen sollten.

Die Aufgaben der einzelnen Schichten des OSI-Referenzmodells sind in Abbildung

3.5 zusammengefasst. Wie der Name schon sagt, handelt es sich dabei um ein

Gerüst für die Definition von Protokollen und nicht um die Definition einer bestimmten

Protokollfolge. Protokollfolgen, die konform zum OSI-Referenzmodell sind, müssen

mindestens ein spezifisches Protokoll auf jeder der sieben im Modell definierten

Ebenen bereitstellen.

Die Protokollschichtung bringt wesentliche Vorteile mit sich, weil sie die Softwareschnittstellen

für den Zugriff auf die Kommunikationsdienste von Netzwerken

vereinfacht und verallgemeinert, bedeutet jedoch auch einen wesentlichen Leistungsaufwand.

Die Übermittlung einer Nachricht auf Applikationsebene über einen Protokollstapel

mit N Schichten verursacht normalerweise N-mal die Übertragung der

Steuerung an die relevante Softwareschicht in der Protokollfolge, von denen es sich

bei mindestens einer um einen Betriebssystemeintritt handelt und bei denen N

Kopien der Daten als Teil des Einkapselungsmechanismus entgegengenommen werden.

Dieser Aufwand resultiert in Datenübertragungsgeschwindigkeiten zwischen

den Applikations-Prozessen, die viel geringer sind als die verfügbare Netzwerkbandbreite.

Abbildung 3.5 beinhaltet Beispiele für im Internet verwendete Protokolle, aber die

Implementierung des Internets folgt dem OSI-Referenzmodell in zweierlei Hinsicht

nicht. Erstens sind im Internet-Protokollstapel die Applikations-, Darstellungs- und

Sitzungsschichten nicht klar voneinander abgetrennt. Stattdessen sind die Applikati-


104

Kapitel 3 – Netzwerke und Internetworking

ons- und die Darstellungsschicht entweder als einzelne Middleware-Schicht oder

separat innerhalb jeder Applikation implementiert. CORBA implementiert also Inter-

Objekt-Aufrufe und Datendarstellungen in einer Middleware-Bibliothek, die in

jedem Applikations-Prozess enthalten ist (weitere Informationen über CORBA finden

Sie in Kapitel 17). Webbrowser und andere Applikationen, für die sichere Kanäle

erforderlich sind, verwenden auf ähnliche Weise die SSL (Secure Sockets Layer, Kapitel

7) als Prozedur-Bibliothek.

Zweitens, die Sitzungsschicht ist in die Transportschicht integriert. Internetwork-

Protokollfolgen beinhalten eine Applikationsschicht (Anwendungsschicht/Verarbeitungsschicht),

eine Transportschicht und eine Internetwork-Schicht. Die Internetwork-

Schicht ist eine „virtuelle“ Vermittlungsschicht, die dafür verantwortlich ist, Internetwork-Pakete

an einen Zielcomputer zu übermitteln. Ein Internetwork-Paket ist die Einheit

der über ein Internetwork übertragenen Daten.

Abbildung 3.5

Überblick über das OSI-Protokoll

Schicht Beschreibung Beispiele

Applikationsschicht

Protokolle, die die Kommunikationsanforderungen

bestimmter Applikationen erfüllen,

häufig indem sie die Schnittstelle zu einem

Dienst definieren

HTTP, FTP, SMTP,

CORBA IIOP

Darstellungsschicht

Protokolle auf dieser Ebene übermitteln Daten

in einer Netzwerkdarstellung, die unabhängig

von den in den einzelnen Computern

verwendeten Darstellungen ist, die sich unterscheiden

können. Auch die Verschlüsselung

wird, falls angewendet, auf dieser

Ebene durchgeführt.

SSL (Secure

Sockets),

CORBA, Datendarstellung

Sitzungsschicht

Auf dieser Schicht werden Zuverlässigkeit

und Anpassung realisiert, beispielsweise die

Fehlererkennung und die automatische

Wiederherstellung.

Transportschicht

Dies ist die niederste Schicht, auf der Nachrichten

(und keine Pakete) verarbeitet werden.

Nachrichten werden an die den

Prozessen zugeordneten Kommunikationsports

adressiert. Protokolle dieser Schicht

können verbindungsorientiert oder verbindungslos

sein.

TCP, UDP

Vermittlungsschicht

Überträgt Datenpakete zwischen Computern

in einem bestimmten Netzwerk. In einem

WAN oder einem Internetwork

beinhaltet dies auch das Erstellen einer

Route, die durch die verschiedenen Router

führt. In einem einzelnen LAN ist kein Routing

erforderlich.

IP, ATM, virtuelle

Schaltungen


3.3 Netzwerkgrundlagen 105


Abbildung 3.5

Überblick über das OSI-Protokoll

Schicht Beschreibung Beispiele

Sicherungsschicht

Bitübertragungsschicht

Verantwortlich für die Übertragung von Paketen

zwischen Knoten, die direkt über eine

Übertragungsschicht verbunden sind. In einer

WAN-Übertragung erfolgt die Übertragung

zwischen Router-Paaren oder

zwischen Routern und Hosts. In einem LAN

erfolgt sie zwischen einem beliebigen Paar

von Hosts.

Die Verbindungen und die Hardware, die

das Netzwerk steuern. Sie überträgt Folgen

binärer Daten durch analoge Signale, wobei

die Amplituden- oder Frequenzmodulation

elektrischer Signale (auf Kabelverbindungen),

von Lichtsignalen (auf Glasfaserverbindungen)

oder anderer

elektromagnetischer Signale (auf Funk- und

Mikrowellenverbindungen) genutzt wird.

Ethernet MAC, ATM-

Zellenübertragung,

PPP

Ethernet-Basisband-

Signale, ISDN

Internetwork-Protokolle setzen auf zu Grunde liegenden Netzwerken auf, wie in

Abbildung 3.6 gezeigt. Die Vermittlungsschnittstellenschicht nimmt Internetwork-

Pakete entgegen und wandelt sie in Pakete um, die für die Übertragung durch die

Vermittlungsschichten der zu Grunde liegenden Netzwerke geeignet sind.

Paketzusammensetzung Die Aufgabe, Nachrichten vor der Übertragung in

Pakete zu zerlegen und sie auf dem empfangenden Computer wieder zusammenzusetzen,

erfolgt normalerweise auf der Transportschicht.

Die Pakete auf der Vermittlungsschicht bestehen aus einem Header und einem

Datenfeld. In den meisten Netzwerk-Technologien hat das Datenfeld eine variable

Länge, weist jedoch eine Größenbegrenzung auf, die so genannte MTU (Maximum

Transfer Unit). Überschreitet die Länge einer Nachricht die MTU der zu Grunde liegenden

Vermittlungsschicht, muss sie in Abschnitte geeigneter Größe unterteilt werden,

wobei Folgenummern vergeben werden müssen, die beim Zusammensetzen der

Abschnitte benötigt werden und dann in mehreren Paketen übertragen werden. Die

MTU für Ethernets beispielsweise beträgt 1.500 Byte – in einem einzelnen Ethernet-

Paket können nicht mehr Daten übertragen werden.

Obwohl das IP-Protokoll in der Internet-Protokollfolge an der Position eines Vermittlungsschicht-Protokolls

steht, ist seine MTU mit 64 Kbyte unüblich groß (in der

Praxis werden häufig acht Kbyte verwendet, weil einige Knoten nicht in der Lage

sind, so große Pakete zu verarbeiten). Egal welcher MTU-Wert für IP-Pakete verwendet

wird, es können Pakete vorkommen, die größer als die Ethernet-MTU sind und

die für die Übertragung über Ethernets unterteilt werden müssen.

Ports Die Aufgabe der Transportschicht ist, einen vom Netzwerk unabhängigen

Nachrichtentransportdienst zwischen Paaren von Netzwerk-Ports zu schaffen. Ports

sind über die Software definierbare Zielpunkte für die Kommunikation innerhalb

eines Host-Computers. Ports sind Prozessen zugeordnet und ermöglichen diesen, in

Paaren zu kommunizieren. Die jeweiligen Details der Port-Abstraktion können vari-


106

Kapitel 3 – Netzwerke und Internetworking

Abbildung 3.6

Internetwork-Schichten

iert werden, um zusätzliche praktische Eigenschaften bereitzustellen. Hier werden

wir die Adressierung der Ports beschreiben, wie sie im Internet und den meisten

anderen Netzwerken gehandhabt wird. Kapitel 4 beschreibt die Verwendung der

Ports.

Adressierung Die Transportschicht ist dafür verantwortlich, Nachrichten an ihre

Ziele auszuliefern, wofür Transportadressen verwendet werden, die sich aus der

Netzwerkadresse eines Host-Computers und einer Port-Nummer zusammensetzen.

Eine Netzwerkadresse ist eine numerische ID, die einen Host-Computer eindeutig

identifiziert und ermöglicht, dass er von Knoten gefunden wird, die für das Routing

von Daten an ihn verantwortlich sind. Im Internet wird jedem Host-Computer eine

IP-Adresse zugeordnet, die ihn identifiziert, ebenso wie das Teilnetz, an das er angeschlossen

ist, sodass Daten von jedem anderen Knoten dorthin geroutet werden können,

wie in den nachfolgenden Abschnitten beschrieben. In Ethernets gibt es keine

Routing-Knoten; jeder Host ist selbst dafür verantwortlich, die an ihn adressierten

Pakete zu erkennen und zu akzeptieren.

Im Internet sind jedem Host-Computer normalerweise mehrere Ports mit bekannten

Nummern zugeordnet, die jeweils für bestimmte Internetdienste reserviert sind

wie beispielsweise HTTP oder FTP. Die bekannte Port-Nummer sowie die Dienstdefinition

sind bei einer zentralen Aufsichtsorganisation registriert [www.iana.org]. Um

auf einen Dienst auf einem bestimmten Host zugreifen zu können, wird eine Anforderung

an den relevanten Port auf dem Host geschickt. Einige Dienste wie beispielsweise

FTP reservieren dann einen neuen Port (mit einer privaten Nummer) und senden

die Nummer des neuen Ports an den Client. Der Client nutzt den neuen Port zur

Einrichtung einer TCP-Verbindung, die für die restliche Transaktion oder Sitzung

verwendet wird. Andere Dienste, beispielsweise HTTP, führen ihre gesamten Aufgaben

über den bekannten Port aus.

Port-Nummern über 1023 stehen für den allgemeinen Gebrauch zur Verfügung,

wie beispielsweise durch neue Dienste oder durch Client-Prozesse, die Ports reservieren

müssen, auf denen sie Ergebnisnachrichten von Servern entgegennehmen. Ein


3.3 Netzwerkgrundlagen 107

verteiltes System hat im Allgemeinen eine Vielzahl an Servern, die ständig wechselt

und sich auch für einzelne Unternehmen unterscheidet. Offensichtlich ist es nicht

möglich, feste Hosts oder feste Port-Nummern für diese Dienste zu reservieren. Die

Lösung für das Problem, wie Clients beliebige Server in einem verteilten System finden,

wird in Kapitel 5 beschrieben.

Paketauslieferung Für die Auslieferung von Paketen durch die Vermittlungsschicht

gibt es zwei Ansätze:

Datagramm-Paketauslieferung: Der Begriff „Datagramm“ bezieht sich auf die Ähnlichkeit

dieses Auslieferungsmodus mit der Art und Weise, wie Briefe und Telegramme

ausgeliefert werden. Das wesentliche Funktionsmerkmal von Datagramm-Netzwerken

ist, dass die Auslieferung jedes Pakets in einem separaten

Prozess erfolgt; es ist kein Setup erforderlich und nachdem das Paket ausgeliefert

ist, behält das Netzwerk keine Informationen darüber zurück. In einem Datagramm-Netzwerk

kann eine Paketfolge, die von einem bestimmten Host an ein

einzelnes Ziel übertragen wird, über unterschiedliche Routen laufen (wenn das

Netzwerk beispielsweise in der Lage ist, Fehler zu verarbeiten oder die Auswirkungen

lokaler Überlasten zu kompensieren). Wenn dies passiert, treffen sie möglicherweise

nicht in der richtigen Reihenfolge ein.

Jedes Datagramm-Paket enthält die vollständige Netzwerkadresse der Quellund

Ziel-Hosts; bei dem letztgenannten handelt es sich um einen wichtigen Parameter

für den Routing-Prozess, wie wir im nächsten Abschnitt noch beschreiben

werden. Die Datagramm-Auslieferung ist das Konzept, auf dem die Paketnetzwerke

ursprünglich basierten und man findet es in den meisten der heute verwendeten

Computernetzwerke. Die Vermittlungsschicht des Internets – IP –, das

Ethernet sowie die meisten verkabelten und funkbasierten lokalen Netzwerk-

Technologien basieren auf der Datagramm-Auslieferung.

Paketauslieferung über virtuelle Verbindungen: Einige Dienste auf Netzwerkebene

implementieren eine Paketübermittlung, die mit einem Telefonnetzwerk verglichen

werden kann. Bevor Pakete von einem Quell-Host A zu einem Ziel-Host B

übertragen werden können, muss eine virtuelle Verbindung eingerichtet werden.

Die Einrichtung einer virtuellen Verbindung bedingt, dass eine Route von der

Quelle zum Ziel identifiziert wird, die möglicherweise durch mehrere Zwischenknoten

führt. In jedem Knoten entlang der Route erfolgt ein Tabelleneintrag, der

angibt, welche Verbindung für die nächste Phase der Route genutzt werden soll.

Nachdem eine virtuelle Verbindung eingerichtet wurde, kann sie genutzt werden,

um beliebig viele Pakete zu übertragen. Jedes Paket auf der Vermittlungsschicht

enthält nur die Nummer einer virtuellen Verbindung anstelle der Quellund

Zieladressen. Die Adressen werden nicht benötigt, weil die Pakete auf den

Zwischenknoten anhand der Nummer ihrer virtuellen Verbindung weitergeleitet

werden. Erreicht ein Paket sein Ziel, kann die Quelle aus der Nummer der virtuellen

Verbindung ermittelt werden.

Die Analogie zu den Telefonnetzwerken sollte nicht zu wörtlich genommen

werden. Bei POTS führt ein Telefonanruf zur Einrichtung einer physischen Verbindung

vom Anrufer zum Angerufenen und die Sprachverbindungen, aus

denen sie sich zusammensetzt, wird für ihre exklusive Nutzung reserviert. Bei der

Auslieferung über eine virtuelle Verbindung werden die Verbindungen nur durch

Tabelleneinträge in den Routing-Knoten dargestellt und die Verbindungen, über

die die Pakete weitergeleitet werden, werden nur solange belegt, wie es dauert,


108

Kapitel 3 – Netzwerke und Internetworking

um ein Paket zu übertragen; in der restlichen Zeit stehen sie für beliebige andere

Zwecke zur Verfügung. Eine einzelne Verbindung kann also in vielen separaten

virtuellen Verbindungen genutzt werden. Die wichtigste Netzwerk-Technologie

mit virtuellen Verbindungen ist momentan ATM; wir haben bereits erwähnt

(Abschnitt 3.3.3), dass sie von den geringeren Latenzen für die Übertragung der

einzelnen Pakete profitiert; dies ist ein direktes Resultat der Verwendung virtueller

Verbindungen. Die Notwendigkeit einer Setup-Phase führt jedoch zu einer

kurzen Verzögerung, bevor irgendwelche Pakete an ein neues Ziel geschickt werden

können.

Abbildung 3.7

Routing in einem WAN

Die Unterscheidung zwischen Datagramm-Auslieferung und Paketauslieferung über

virtuelle Verbindungen sollte nicht mit einem ähnlichen Mechanismenpaar auf der

Transportebene verwechselt werden – verbindungslose und verbindungsorientierte

Übertragung. Darauf werden wir in Abschnitt 3.4.6 im Kontext der Internet-Transport-Protokolle

eingehen, UDP (User Datagram Protocol, verbindungslos) und TCP

(Transmission Control Protocol, verbindungsorientiert). Hier soll nur erwähnt werden,

dass diese Übertragungsmodi über jeden Typ Netzwerkschicht implementiert

werden können.

3.3.5 Routing

Routing ist ein Funktionsmerkmal, das in allen Netzwerken benötigt wird, außer in

LANs wie beispielsweise dem Ethernet, die direkte Verbindungen zwischen allen

Paaren angeschlossener Hosts bereitstellen. In großen Netzwerken wird ein adaptives

Routing verwendet: in bestimmten Zeitabständen wird die beste Route für die Kommunikation

zwischen zwei Punkten im Netzwerk überprüft, wobei der aktuelle Verkehr

im Netzwerk sowie etwaige Fehler wie beispielsweise defekte Verbindungen

oder Router berücksichtigt werden.


3.3 Netzwerkgrundlagen 109

Die Auslieferung von Paketen an ihre Ziele in einem Netzwerk, wie beispielsweise in

Abbildung 3.7 gezeigt, liegt in der kollektiven Verantwortung der Router an den Verbindungspunkten.

Befinden sich Quell- und Ziel-Host nicht im selben LAN, muss

das Paket in einer Abfolge mehrerer hops (1 hop = 1 „Sprung“ von einem Knoten zu

einem anderen) übertragen werden und dabei mehrere Router-Knoten durchlaufen.

Die Festlegung von Routen für die Übertragung von Paketen an ihr Ziel unterliegt

der Verantwortung eines Routing-Algorithmus – implementiert durch ein Programm

auf der Vermittlungsschicht jedes Knotens.

Ein Routing-Algorithmus besteht aus zwei Teilen:

1. Er muss Entscheidungen treffen, um die Route zu bestimmen, über die die einzelnen

Pakete das Netzwerk durchlaufen sollen. In leitungsvermittelten Vermittlungsschichten,

beispielsweise X.25- oder Frame-Relay-Netzwerken wie ATM,

wird die Route festgelegt, wenn eine virtuelle Verbindung oder eine Verbindung

eingerichtet wird. In paketvermittelten Vermittlungsschichten, beispielsweise IP,

wird sie für jedes Paket separat ermittelt und der Algorithmus muss besonders

einfach und effizient sein, wenn er die Netzwerkleistung nicht verschlechtern soll.

2. Er muss sein Wissen über das Netzwerk ständig aktualisieren, indem er den Verkehr

beobachtet und Konfigurationsänderungen oder Fehler erkennt. Diese Aktivität

ist weniger zeitkritisch; hier können langsamere und weniger rechenintensive

Techniken verwendet werden.

Abbildung 3.8 Routing-Tabellen für das in Abbildung 3.7 gezeigte Netzwerk

Routings von A

An Verbindung Kosten

A Lokal 0

B 1 1

C 1 2

D 3 1

E 1 2

Routings von B

An Verbindung Kosten

A 1 1

B Lokal 0

C 2 1

D 1 2

E 4 1


110

Kapitel 3 – Netzwerke und Internetworking


Abbildung 3.8

Routings von C

Routing-Tabellen für das in Abbildung 3.7 gezeigte Netzwerk

An Verbindung Kosten

A 2 2

B 2 1

C Lokal 0

D 5 2

E 5 1

Routings von D

An Verbindung Kosten

A 3 1

B 3 2

C 6 2

D Lokal 0

E 6 1

Routings von E

An Verbindung Kosten

A 4 2

B 4 1

C 5 1

D 6 1

E Lokal 0

Beide Aktivitäten sind über das Netzwerk verteilt. Die Routing-Entscheidungen werden

auf einer hop-by-hop-Basis getroffen, wobei lokal vorgehaltene Informationen

genutzt werden, um den nächsten hop für jedes eingehende Paket, welches weitergereicht

werden soll, zu ermitteln. Die lokal vorgehaltene Routing-Information wird in

bestimmten Zeitabständen durch einen Algorithmus aktualisiert, der Informationen

über die Zustände der Verbindungen verteilt (ihre Auslastung sowie den Fehlerzustand).


3.3 Netzwerkgrundlagen 111

Unsere Darstellung beginnt mit einer Beschreibung eines relativ einfachen Routing-

Algorithmus. Dies bildet die Grundlage für die Beschreibung in Abschnitt 3.4.3 des

Verbindungszustand-Algorithmus (Link State Algorithm), der seit 1979 als Haupt-

Routing-Algorithmus im Internet verwendet wird. Der Algorithmus, den wir hier

beschreiben, ist ein „Distanzvektor“-Algorithmus. Routing in Netzwerken ist ein Beispiel

für das Problem, Pfade in Graphen zu finden. Der Algorithmus zum Auffinden

der kürzesten Pfade von Bellman, der lange vor der Entwicklung von Computernetzwerken

veröffentlicht wurde [Bellman 1957], bildet die Grundlage für die Distanzvektor-Methode.

Die Methode von Bellman wurde von Ford und Fulkerson [1962] in

einen verteilten Algorithmus umgewandelt, der für die Implementierung in großen

Netzwerken geeignet ist und Protokolle, die auf ihrer Arbeit aufsetzen, werden häufig

auch als „Bellman-Ford“-Protokolle bezeichnet.

Er muss sein Wissen über das Netzwerk ständig aktualisieren, indem er den Verkehr

beobachtet und Konfigurationsänderungen oder Fehler erkennt. Diese Aktivität

ist weniger zeitkritisch; hier können langsamere und weniger rechenintensive Techniken

verwendet werden. zeigt die Routing-Tabellen, die in den Routern aus Abbildung

3.7 verwaltet werden, vorausgesetzt, in dem Netzwerk gibt es keine defekten Verbindungen

oder Router. Jede Zeile stellt die Routing-Informationen für Pakete bereit,

die an ein bestimmtes Ziel adressiert sind. Das Feld Verbindung gibt die ausgehende

Verbindung für Pakete an, die an dieses Ziel adressiert sind. Das Feld Kosten enthält

eine einfache Berechnung der Vektordistanz, d.h. die Anzahl der hops zu dem vorgegebenen

Ziel. Für Speicher- und Verarbeitungsnetzwerke mit Verbindungen ähnlicher

Bandbreite erhält man damit eine sinnvolle Abschätzung der Zeit, die ein Paket benötigt,

um sein Ziel zu erreichen. Die in den Routing-Tabellen gespeicherte Kosteninformation

wird während der in Teil 1 des Routing-Algorithmus ausgeführten Aktionen

zum Paket-Routing nicht verwendet, ist aber für den Aufbau der Routing-Tabelle

sowie für ihre Wartung in Schritt 2 erforderlich.

Die Routing-Tabellen enthalten für jedes mögliche Ziel einen einzigen Eintrag, der

den nächsten hop angibt, den das Paket in Richtung seines Zieles durchführen muss.

Ist beispielsweise ein Paket an C adressiert und gelangt auf den Router von A,

wertet der Router den Eintrag für C in seiner Routing-Tabelle aus. Dieser Eintrag

zeigt, dass das Paket von A aus über die Verbindung 1 weitergeleitet werden soll.

Das Paket kommt bei B an und auch hier wird die Routing-Tabelle ausgewertet,

woraus sich ergibt, dass die Route nach C über die Verbindung 2 führt. Kommt das

Paket in C an, enthält die Routing-Tabelle statt einer Verbindungsnummer den Eintrag

„lokal“. Daran erkennen wir, dass das Paket an einen lokalen Host ausgeliefert

werden soll.

Jetzt wollen wir betrachten, wie die Routing-Tabellen aufgebaut sind und wie sie

gewartet werden, wenn im Netzwerk Fehler auftreten. Wir betrachten also, wie Teil 2

des oben beschriebenen Routing-Algorithmus ausgeführt wird. Weil jede Routing-

Tabelle nur einen einzigen hop für jede Route angibt, nämlich den nächsten hop,

kann der Aufbau oder die Korrektur der Routing-Informationen auf verteilte Weise

stattfinden. Ein Router tauscht Informationen über das Netzwerk mit seinen benachbarten

Knoten aus, indem er ihnen unter Verwendung eines RIP (Router Information

Protocol) einen Überblick über seine Routing-Tabelle schickt. Die RIP-Aktionen auf

einem Router können formlos wie folgt beschrieben werden:

1. In bestimmten Zeitabständen und immer dann, wenn sich die lokale Routing-Tabelle

ändert, wird die Tabelle (in Überblicksform) an alle erreichbaren Nachbarn


112

Kapitel 3 – Netzwerke und Internetworking

geschickt. Das bedeutet, es wird ein RIP-Paket geschickt, das eine Kopie der

Tabelle mit allen nicht fehlerhaften ausgehenden Verbindungen enthält.

2. Wird eine Tabelle von einem benachbarten Router empfangen und die empfangene

Tabelle zeigt eine Route zu einem neuen Ziel auf oder eine bessere (billigere)

Route zu einem bereits existierenden Ziel, wird die lokale Tabelle mit der neuen

Route aktualisiert. Wurde die Tabelle über Verbindung n empfangen und gibt für

eine Route, die mit der Verbindung n beginnt, andere Kosten als die lokale Tabelle

an, werden die Kosten der lokalen Tabelle durch die neuen Kosten ersetzt. Das

erfolgt, weil die neue Tabelle von einem Router empfangen wurde, der näher an

dem relevanten Ziel liegt und der deshalb immer die aktuelleren Informationen

über die zu durchlaufenden Routen enthält.

Dieser Algorithmus ist genauer in dem in Abbildung 3.9 gezeigten Pseudocode

beschrieben, wo Tr eine Tabelle ist, die von einem anderen Router empfangen wurde,

und Tl ist die lokale Tabelle. Ford und Fulkerson [1962] haben gezeigt, dass die oben

beschriebenen Schritte ausreichend sind, um sicherzustellen, dass die Routing-Tabellen

die besten Routen zu jedem Ziel erkennen („konvergieren“), nachdem es Änderungen

im Netzwerk gegeben hat. Die Frequenz t, mit der Routing-Tabellen veröffentlicht

werden, auch wenn keine Änderungen aufgetreten sind, ist so ausgelegt,

dass auch dann Stabilität gewährleistet ist, wenn beispielsweise einige RIP-Pakete

verloren gehen. Im Internet wird für t der Wert 30 Sekunden angenommen.

Abbildung 3.9

Pseudocode für den RIP-Routing-Algorithmus

fehlerhaften

Um mit Fehlern zurechtzukommen, beobachtet jeder Router seine Verbindungen und

verhält sich wie folgt:

Wird eine fehlerhafte Verbindung n erkannt, werden die Kosten für alle Einträge in

der lokalen Tabelle, die auf die fehlerhafte Verbindung verweisen, auf ∞ gesetzt

und es wird eine Send-Aktion ausgeführt.


3.3 Netzwerkgrundlagen 113

Die Information, dass die Verbindung defekt ist, wird also durch einen unendlichen

Wert für die Kosten zu den betreffenden Zielen dargestellt. Wird diese Information an

benachbarte Knoten weitergegeben, wird sie der Receive-Aktion entsprechend verarbeitet

(Knoten ∞+1 = ∞) und dann weitergereicht, bis ein Knoten erreicht ist, der eine

funktionierende Route zu den relevanten Zielen aufweist, falls es einen solchen gibt.

Der Knoten, der noch eine funktionierende Route aufweist, übermittelt irgendwann

seine eigene Tabelle und die funktionierende Route ersetzt die fehlerhafte Route auf

allen Knoten.

Der Vektordistanz-Algorithmus kann vielfach verbessert werden: Kosten (auch

als die Metrik bezeichnet) können anhand der tatsächlichen Bandbreiten der Verbindungen

berechnet werden; der Algorithmus kann so abgeändert werden, dass er

schneller konvergiert und unerwünschte Zwischenzustände vermeidet wie beispielsweise

Schleifen, die auftreten können, bevor eine Konvergenz erreicht ist. Ein Routing-Informations-Protokoll

(RIP) mit diesen Verbesserungen war das erste im Internet

verwendete Routing-Protokoll, auch als RIP-1 bezeichnet und in RFC 1058

beschrieben [Hedrick 1988].

Nachfolgende Entwicklungen im Bereich der Routing-Algorithmen führten dazu,

dass in jedem Knoten des Netzwerks mehr Wissen abgelegt wurde. Die wichtigste

Algorithmenfamilie dieses Typs wird auch als Verbindungszustand-Algorithmen

oder Link-State-Algorithms bezeichnet. Sie basieren auf der Verteilung und Aktualisierung

einer Datenbank in jedem Knoten, die das gesamte oder einen wesentlichen

Teil des Netzwerks darstellt. Jeder Knoten ist verantwortlich für die Berechnung optimaler

Routen zu den in seiner Datenbank aufgezeigten Zielen. Diese Berechnung

kann von den unterschiedlichsten Algorithmen ausgeführt werden, von denen einige

bekannte Probleme des Ballman-Ford-Algorithmus vermeiden, beispielsweise langsame

Konvergenz und unerwünschte Zwischenzustände.

Der Entwurf von Routing-Algorithmen ist ein wichtiges Thema und unsere

Beschreibung erhebt keinen Anspruch auf Vollständigkeit. Eine ausführliche

Beschreibung des Routings im Internet finden Sie bei [Huitema 1995]. Weitere allgemeine

Informationen zu Routing-Algorithmen finden Sie bei [Tanenbaum 1996].

3.3.6 Überlastungskontrolle

Die Kapazität eines Netzwerks ist durch die Leistung seiner Kommunikationsverbindungen

und Switching-Knoten begrenzt. Nähert sich die Last auf einer bestimmten

Verbindung oder einem Knoten seiner Gesamtkapazität, bilden sich Warteschlangen

auf den Hosts, die versuchen, Pakete zu senden, ebenso wie auf Zwischenknoten;

diese Warteschlangen enthalten Pakte, deren Weiterleitung durch anderen Verkehr

blockiert ist. Bleibt die Auslastung gleich hoch, wachsen die Warteschlangen, bis sie

die Grenze des verfügbaren Pufferspeichers erreicht haben.

Nachdem dieser Zustand an einem Knoten erreicht wurde, hat der Knoten keine

andere Möglichkeit, als alle weiteren ankommenden Pakete zu verwerfen. Wie wir

bereits erwähnt haben, ist der gelegentliche Verlust von Paketen auf Netzwerkebene

akzeptabel und kann kompensiert werden, indem man auf höheren Schichten eine

erneute Übertragung initiiert. Erreicht die Verlustrate der Pakete jedoch eine

bestimmte Schwelle, kann die Auswirkung auf den Durchsatz des Netzwerks verheerend

sein. Und das ist ganz leicht zu erkennen: werden Pakete auf Zwischenknoten

verworfen, sind die Netzwerk-Ressourcen, die sie bereits verbraucht haben, vergeudet

und für die resultierende erneute Übertragung ist eine ähnliche Menge an Res-


114

Kapitel 3 – Netzwerke und Internetworking

sourcen erforderlich, um denselben Punkt im Netzwerk zu erreichen. Als Faustregel

gilt: wenn die Auslastung eines Netzwerks 80% seiner Kapazität übersteigt, sinkt der

Gesamtdurchsatz auf Grund von Paketverlusten, es sei denn, die Verwendung hoch

ausgelasteter Verbindungen wird gesteuert.

Statt den Paketen zu ermöglichen, einfach durch das Netzwerk zu reisen, bis sie

überfüllte Knoten erreichen, wo sie verworfen werden müssen, ist es besser, sie an

früheren Knoten zurückzuhalten, bis die Überlastung wieder reduziert ist. Das führt

zu höheren Verzögerungen für Pakete, aber verringert den Gesamtdurchsatz des

Netzwerks nur unwesentlich. Die Techniken, mit denen dies realisiert wird, werden

auch als Überlastkontrolle bezeichnet.

Im Allgemeinen wird die Überlastkontrolle erzielt, indem Knoten entlang einer

Route informiert werden, für die eine Überlast aufgetreten ist, und ihre Paketübertragungsrate

sollte deshalb reduziert werden. Für Zwischenknoten führt dies dazu, dass

ankommende Pakete für längere Zeit gepuffert werden. Für Hosts, die als Quelle von

Paketen auftreten, bedeutet das, dass sie Pakete möglicherweise vor der Übertragung

puffern oder den Applikations-Prozess, der sie erzeugt, blockieren müssen, bis das

Netzwerk in der Lage ist, sie zu verarbeiten.

Alle datagramm-basierten Netzwerkschichten inklusive IP und Ethernets basieren

auf die Ende-zu-Ende-Steuerung des Verkehrs. Das bedeutet, der sendende Knoten

muss abhängig von den Informationen, die er vom Empfänger erhält, die Übertragungsrate

für Pakete reduzieren. Überlastinformationen können den sendenden

Knoten bereitgestellt werden, indem dafür explizite Nachrichten (so genannte

Choke-Pakete) übertragen werden oder durch die Implementierung eines speziellen

Übertragungssteuerungs-Protokolls (Transmission Control Protocol, wovon auch

TCP seinen Namen ableitet; Abschnitt 3.4.6 erklärt die in TCP verwendeten Mechanismen)

oder durch Beobachtung des Auftretens verworfener Pakete (falls das Protokoll

jedes Paket bestätigt).

In einigen virtuellen schaltungsvermittelten Netzwerken kann die Überlastinformation

auf jedem Knoten entgegengenommen und entsprechend darauf reagiert

werden. Obwohl ATM eine Auslieferung über virtuelle Verbindungen verwendet,

verlässt es sich auf die Dienstgüte-Verwaltung (siehe Abschnitt 3.5.3 und Kapitel 5),

um sicherzustellen, dass jede Verbindung den anfallenden Verkehr bewältigen kann.

3.3.7 Internetworking

Es gibt viele Netzwerk-Technologien mit unterschiedlichen Netzwerk- und Verbindungs-Protokollen

sowie Protokollen für die Bitübertragungsschicht. Lokale Netzwerke

werden mit Ethernet- und ATM-Technologien aufgebaut, WAN-Netzwerke

über analoge und digitale Telefonnetzwerke verschiedener Arten, Satellitenverbindungen

und Weitverkehrs-ATM-Netzwerke. Einzelne Computer und lokale Netzwerke

werden über Modems, ISDN-Verbindungen oder DSL-Verbindungen mit dem

Internet oder Intranets verbunden.

Um ein integriertes Netzwerk (ein Internetwork) aufzubauen, müssen viele Teilnetze

integriert werden, die jeweils auf einer dieser Netzwerk-Technologien basieren.

Damit das möglich ist, müssen die folgenden Voraussetzungen gegeben sein:

1. Ein vereinheitlichtes Internetwork-Adressierungsschema, das ermöglicht, Pakete

an jeden an beliebige Teilnetze angeschlossenen Host zu adressieren


3.3 Netzwerkgrundlagen 115

2. Ein Protokoll, das das Format von Internetwork-Paketen definiert und Regeln zu

ihrer Handhabung vorschreibt

3. Verbindende Komponenten, die Pakete an ihre Ziele weiterleiten, indem sie ihre

Internetwork-Adressen auswerten und die Pakete über Teilnetze mit möglicherweise

unterschiedlichen Netzwerk-Technologien weiterleiten

Für das Internet wird (1) durch IP-Adressen realisiert, (2) ist das IP-Protokoll und (3)

wird durch Komponenten realisiert, die auch als Internet-Router bezeichnet werden.

Das IP-Protokoll und die IP-Adressierung werden in Abschnitt 3.4 detailliert

beschrieben. Hier werden wir die Funktion von Internet-Routern und anderen Komponenten,

mit denen Netzwerke verbunden werden, beschreiben.

Abbildung 3.10 zeigt einen kleinen Teil des Intranets des Queen Mary and Westfield

College (QMW) der Universität von London. Viele der hier gezeigten Details

werden in späteren Abschnitten genauer erklärt. Hier wollen wir darauf hinweisen,

dass der in der Abbildung gezeigte Teil mehrere Teilnetze beinhaltet, die über Router

miteinander verbunden sind. Die Teilnetze sind grau markiert; es gibt fünf solcher

Teilnetze, von denen drei dasselbe IP-Netzwerk verwenden, 138.37.95 (wozu das in

Abschnitt 3.4.3 beschriebene Interdomain-Routingschema verwendet wird). Die

numerischen Adressen sind IP-Adressen und werden nachfolgend beschrieben. Die

Router liegen innerhalb mehrerer Teilnetze und haben für jedes Teilnetz, an das sie

angeschlossen sind, eine separate IP-Adresse (die Adressen sind neben den Verbindungen

gezeigt).

Die Router (Host-Namen: hammer und sickle) sind ganz allgemeine Computer, die

auch für andere Aufgaben genutzt werden. Einer davon dient als Firewall; die Rolle

einer Firewall ist eng mit dem Routing verknüpft, wie wir im Folgenden noch

beschreiben werden. Das Teilnetz 138.37.95.232/29 ist nicht mit dem restlichen Netzwerk

auf IP-Ebene verbunden. Nur der Datei-Server custard kann darauf zugreifen,

um über einen Server-Prozess, der die Verwendung der Drucker überwacht und steuert,

einen Druckdienst auf den angeschlossenen Druckern bereitzustellen.

Alle in Abbildung 3.10 gezeigten Verbindungen sind Ethernets. Die meisten

davon haben eine Bandbreite von 100 Mbps, aber eines davon unterstützt 1.000

Mbps, weil es sehr viel Verkehr zwischen sehr vielen Computern überträgt, die von

Studenten und custard, dem Datei-Server, der alle ihre Daten enthält, verwendet

wird.

Es gibt zwei Ethernet-Switches und mehrere Ethernet-Hubs in dem gezeigten Teil

des Netzwerks. Beide Komponententypen sind transparent für IP-Pakete. Ein Ethernet-Hub

stellt einfach eine Möglichkeit dar, mehrere Ethernet-Kabelsegmente zu verbinden,

die dann auf Ebene des Netzwerk-Protokolls ein einziges Ethernet bilden.

Alle von dem Host empfangenen Ethernet-Pakete können an alle Segmente weitergegeben

werden. Ein Ethernet-Switch verbindet mehrere Ethernets miteinander und

leitet die eingehenden Pakete nur in das Ethernet weiter, an das der Ziel-Host angeschlossen

ist.

Router Wir haben bereits erwähnt, dass in allen Netzwerken ein Routing erforderlich

ist, außer beispielsweise in Ethernets und Funknetzwerken, in denen alle

Hosts über ein einziges Übertragungsmedium miteinander verbunden sind. Abbildung

3.7 zeigt ein solches Netzwerk, in dem fünf Router durch sechs Verbindungen

verknüpft sind. In einem Internetwork können die Router über direkte Verbindungen

verknüpft sein, wie in Abbildung 3.7 gezeigt, oder sie können durch Teilnetze miteinander

verbunden sein, wie in Abbildung 3.10 für custard gezeigt. In beiden Fällen


116

Kapitel 3 – Netzwerke und Internetworking

Abbildung 3.10

Vereinfachte Ansicht des Netzwerks am Lehrstuhl für Informatik des QMW

sind die Router dafür verantwortlich, die die an irgendeiner Verbindung ankommenden

Internetwork-Pakete an die korrekt ausgehende Verbindung weiterzuleiten, wie

oben bereits erklärt; für diesen Zweck führen sie Routing-Tabellen.

Bridges Bridges verbinden Netzwerke unterschiedlicher Typen miteinander.

Einige Bridges verknüpfen mehrere Netzwerke und werden als Bridge/Router

bezeichnet, weil sie auch Routing-Aufgaben übernehmen. Das Campus-Netzwerk in

QMW beispielsweise enthält einen FDDI-Backbone (in Abbildung 3.10 nicht gezeigt),

der über Bridge/Router mit den in der Abbildung gezeigten Ethernet-Teilnetzen verbunden

ist.

Hubs Hubs sind einfach eine bequeme Möglichkeit, Hosts und erweiternde Segmente

von Ethernet- und anderen lokalen Broadcast-Netzwerk-Technologien zu verbinden.

Sie haben mehrere Sokkets (normalerweise zwischen vier und 64), an die je

ein Host-Computer angeschlossen werden kann. Außerdem können sie eingesetzt

werden, um Distanzbeschränkungen in einzelnen Segmenten zu umgehen und eine

Möglichkeit zu bieten, zusätzliche Hosts bereitzustellen.


3.3 Netzwerkgrundlagen 117

Abbildung 3.11

Tunnelling für die IPv6-Migration

Switches Switches übernehmen ähnliche Aufgaben wie Router, allerdings nur für

lokale (normalerweise Ethernet-) Netzwerke. Das bedeutet, sie verbinden mehrere

separate Ethernets und leiten ihre eingehenden Pakete an das entsprechende ausgehende

Netzwerk weiter. Sie erledigen ihre Aufgabe normalerweise auf Ebene des

Ethernet-Netzwerk-Protokolls. Sie beginnen ohne jede Kenntnis des umschließenden

Internetworks und bauen durch die Beobachtung des Verkehrs Routing-Tabellen auf,

ergänzt durch Broadcast-Anforderungen, wenn ihnen Informationen fehlen.

Der Vorteil, den Switches gegenüber Hubs aufweisen, ist, dass sie den eingehenden

Verkehr isolieren und nur an das relevante ausgehende Netzwerk weitergeben

und damit die Last auf den anderen angeschlossenen Netzwerken reduzieren.

Tunnelling Brigdes und Router übertragen Internetwork-Pakete über die unterschiedlichsten

Netzwerke, aber es gibt eine Situation, in der das zu Grunde liegende

Netzwerk-Protokoll vor den darüber liegenden verborgen werden kann, ohne ein

spezielles Internetwork-Protokoll zu verwenden. Wenn zwei Knoten, die an zwei

separate Netzwerke angeschlossen sind, über einen anderen Netzwerktyp oder ein

fremdes Protokoll miteinander kommunizieren müssen, bauen sie dafür einen Protokoll-„Tunnel“

auf. Abbildung 3.11 zeigt die vorgeschlagene Verwendung des Tunnellings

zur Unterstützung der Migration des Internets auf das vor kurzem anerkannte

IPv6-Protokoll. IPv6 soll die aktuell verwendete Version IPv4 ersetzen und ist nicht

damit kompatibel. (IPv4 und IPv6 sind in Abschnitt 3.4 beschrieben). Während des

Übergangs zu IPv6 wird es „Inseln“ mit IPv6-Netzwerken geben, die im IPv4-Meer

arbeiten. In unserer Darstellung sind A und B solche Inseln. IPv6-Pakete sind in IPv4

eingekapselt und werden auf diese Weise über die dazwischen liegenden IPv4-Netzwerke

übertragen.

Ein Protokolltunnel ist also eine Softwareschicht, die Pakete über eine fremde

Netzwerkumgebung überträgt. Als weiteres Beispiel wäre MobileIP zu nennen, das

IP-Pakete an mobile Hosts im Internet überträgt, indem es von ihrem Standort aus

einen Tunnel anlegt. Die dazwischen liegenden Netzwerkknoten müssen nicht verändert

werden, um das MobileIP-Protokoll verarbeiten zu können. Das IP-Multicast-

Protokoll wird auf ähnliche Weise unterstützt, wobei nur ein paar auf das IP-Multicast-Routing

ausgelegte Router verwendet werden, um die Routen festzulegen, die

IP-Pakete jedoch unter Verwendung von Standard-IP-Adressen über andere Router

übertragen werden. Ein weiteres Beispiel ist das Point-to-Point-Protocol (PPP) für die

Übertragung von IP-Paketen über serielle Verbindungen.


118

Kapitel 3 – Netzwerke und Internetworking

Abbildung 3.12

TCP/IP Schichten

Die folgende Analogie erklärt, warum diese Terminologie gewählt wurde, und zeigt,

wie man sich das Tunnelling noch vorstellen könnte. Ein Tunnel durch einen Berg

erlaubt einen Straßenverlauf, über den Autos fahren können, der andernfalls unmöglich

wäre. Die Straße ist unterbrechungsfrei – der Tunnel ist transparent für die Applikation

(die Autos). Die Straße ist der Transportmechanismus und der Tunnel ermöglicht,

dass sie auch in einer sonst ungeeigneten Umgebung verlaufen kann.

3.4 Internet-Protokolle

Hier beschreiben wir die wichtigsten Funktionsmerkmale der TCP/IP-Protokollfolge

und diskutieren ihre Vorteile und Einschränkungen bei der Verwendung in verteilten

Systemen.

Das Internet ist nach zwanzig Jahren Forschung und Entwicklung an einem WAN

in den USA entstanden, mit ersten Versuchen Anfang der 70er Jahre im ARPANET

(Advanced Research Projects Agency Network) – der ersten größeren Entwicklung

im Bereich der Computernetzwerke [Leiner et al. 1997]. Ein wichtiger Teil der Forschung

war die Entwicklung der TCP/IP-Protokollfolge. TCP steht für Transmission

Control Protocol, IP für Internet Protocol. Die allgemeine Verbreitung von TCP/IP

und den Internet-Applikations-Protokollen in nationalen Forschungsnetzwerken und

vor kürzerer Zeit auch in kommerziellen Netzwerken vieler Länder hat ermöglicht,

die nationalen Netzwerke zu einem einzigen großen Netzwerk zu integrieren, das

extrem schnell bis zu seiner heutigen Größe von mehr als 60 Millionen Hosts angewachsen

ist. Es gibt heute viele Applikationsdienste und Protokolle auf Applikationsebene

(die in der nachfolgenden Liste in Klammern angegeben sind), die auf TCP/IP

basieren, unter anderem das Web (HTTP), E-Mail (SMTP, POP), netnews (NNTP),

Dateiübertragung (FTP) und Telnet (telnet). TCP ist ein Transport-Protokoll; Applikationen

können direkt davon unterstützt werden oder zusätzliche Protokolle darauf

aufsetzen, um zusätzliche Funktionsmerkmale zu unterstützen. Beispielsweise wird


3.4 Internet-Protokolle 119

HTTP normalerweise durch die direkte Verwendung von TCP unterstützt, aber wenn

eine Ende-zu-Ende-Sicherheit benötigt wird, wird das SSL-Protokoll (Secure Sockets

Layer) (siehe Abschnitt 7.6.3) auf TCP aufgesetzt, um sichere Kanäle bereitzustellen;

die HTTP-Nachrichten werden über die sicheren Kanäle übertragen.

Abbildung 3.13

Die Kapselung bei der Übertragung einer Nachricht via TCP über ein Ethernet

Die Internet-Protokolle wurden ursprünglich primär für die Unterstützung von

WAN-Applikationen entwickelt wie beispielsweise Dateiübertragung und E-Mail,

wobei die Kommunikation mit relativ großen Latenzen zwischen geografisch verteilten

Computern stattfand. Es stellt sich jedoch heraus, dass sie effizient genug waren,

um die Anforderungen vieler verteilter Applikationen sowohl in WANs als auch in

LANs zu unterstützen, und heute werden sie in verteilten Systemen ganz allgemein

eingesetzt. Die resultierende Standardisierung der Kommunikations-Protokolle hat

wesentliche Vorteile mit sich gebracht. Die einzigen wichtigeren Ausnahmen bei der

allgemeinen Verwendung der TCP/IP-Kommunikation sind:

õ

õ

der Einsatz von WAP für Funk-Applikationen auf portablen Geräten;

spezielle Protokolle für die Unterstützung von Multimedia-Streaming-Applikationen.

Die allgemeine Darstellung der Netzwerk-Protokollschichten in Abbildung 3.6

wurde in Abbildung 3.12 in den speziellen Internet-Fall übersetzt. Es gibt zwei Transport-Protokolle

– TCP (Transport Control Protocol) und UDP (User Datagram Protocol).

TCP ist ein zuverlässiges verbindungsorientiertes Protokoll; UDP ist ein Datagramm-Protokoll,

das keine zuverlässige Übertragung garantiert. Das Internet

Protocol (IP) ist das zu Grunde liegende „Netzwerk“-Protokoll des virtuellen Internet-Netzwerks

– d.h. IP-Datagramme stellen den grundlegenden Übertragungsmechanismus

für das Internet und andere TCP/IP-Netzwerke dar. Wir haben das Wort

„Netzwerk“ im vorigen Satz in Anführungszeichen gestellt, weil es nicht die einzige

Netzwerkschicht ist, die an der Implementierung der Internetkommunikation beteiligt

ist. Internet-Protokolle setzen normalerweise auf einer anderen Netzwerk-Technologie

auf wie beispielsweise dem Ethernet, das bereits eine Netzwerkschicht bereitstellt,

die ermöglicht, dass die an ein Netzwerk angeschlossenen Computer Datagramme

austauschen. Abbildung 3.13 zeigt die Kapselung von Paketen, die bei der

Übertragung einer Nachricht via TCP über ein zu Grunde liegendes Ethernet stattfin-


120

Kapitel 3 – Netzwerke und Internetworking

det. Die Tags in den Headern enthalten den Protokolltyp für die darüber liegende

Schicht, die für den empfangenden Protokollstapel benötigt wird, um die Pakete korrekt

zu entpacken. In der TCP-Schicht übernimmt die Port-Nummer des Empfängers

eine ähnliche Aufgabe und ermöglicht der TCP-Software-Komponente auf dem empfangenden

Host, die Nachricht an einen bestimmten Prozess auf Applikationsebene

weiterzugeben.

Die TCP/IP-Spezifikationen [Postel 1981a; 1981b] beziehen sich nicht auf die

Schichten unterhalb der Internet-Datagrammschicht – IP-Pakete in der Internetschicht

werden zur Übertragung über fast jede beliebige Kombination zu Grunde liegender

Netzwerke oder Datenverbindungen in Pakete verpackt.

Abbildung 3.14

Die konzeptuelle Sicht eines Programmierers auf ein TCP/IP-Internet

Beispielsweise wurde IP ursprünglich über das ARPANET ausgeführt, das aus Hosts

und einer frühen Variante von Routern bestand (den so genannten PSEs), die durch

Datenverbindungen über große Distanzen verbunden waren. Heute wird es über fast

jede bekannte Netzwerk-Technologie ausgeführt, unter anderem ATM, LANs wie

z.B. Ethernets oder Token Ring-Netzwerke. IP wird unter Verwendung des PPP-Protokolls

[Parker 1992] über serielle Leitungen und Telefonverbindungen implementiert,

sodass es für die Kommunikation mit Modemverbindungen und anderen seriellen

Techniken geeignet ist.

Der Erfolg von TCP/IP begründet sich in seiner Unabhängigkeit von der zu

Grunde liegenden Übertragungs-Technologie, sodass Netzwerke aus vielen heterogenen

Netzwerken und Datenverbindungen aufgebaut werden können. Benutzer und

Applikationsprogramme nehmen ein einziges virtuelles Netzwerk wahr, das TCP

und UDP unterstützt, und die Implementierer von TCP und UDP sehen ein einziges

virtuelles IP-Netzwerk, das die Verschiedenartigkeiten der zu Grunde liegenden

Übertragungsmedien verbirgt. Abbildung 3.14 zeigt diese Ansicht.

In den beiden nächsten Abschnitten beschreiben wir das IP-Adressierungsschema

und das IP-Protokoll. Das DNS, das Domainnamen wie beispielsweise www.amazon.com,

hpl.hp.com, stanford.edu und qmw.ac.uk, die den Internetbenutzern so vertraut

sind, in IP-Adressen umwandelt, wird in Abschnitt 3.4.7 eingeführt und detailliert in

Kapitel 9 beschrieben.

Die aktuell im Internet allgemein eingesetzte IP-Version ist IPv4 (seit Januar 1984)

und diese Version wollen wir in den beiden nächsten Abschnitten auch betrachten.

Das schnelle Wachstum des Internets hat jedoch zur Spezifikation einer neuen Version

(IPv6) geführt, die die Adressierungsbeschränkungen von IPv4 lösen soll und


3.4 Internet-Protokolle 121

einige neue Funktionsmerkmale einführt, die ganz neue Anforderungen unterstützen.

IPv6 ist in Abschnitt 3.4.4 beschrieben. Weil sehr viel Software davon betroffen

ist, ist der schrittweise Umstieg auf IPv6 über einen Zeitraum von zehn Jahren oder

länger geplant.

3.4.1 IP-Adressierung

Der vielleicht schwierigste Aspekt beim Entwurf der Internet-Protokolle war die Entwicklung

von Schemata für die Benennung und Adressierung von Hosts und das

Routing von IP-Paketen an ihre Ziele. Das Schema, nach dem Netzwerken und den

daran angeschlossenen Computern Host-Adressen zugewiesen werden, musste die

folgenden Anforderungen erfüllen:

õ

õ

õ

Es musste universell sein – jeder Host sollte in der Lage sein, Pakete an jeden anderen

Host im Internet zu senden.

Es sollte den Adressraum effizient nutzen – letztlich ist die genaue Größe des

Internets und die dafür erforderliche Anzahl der Netzwerk- und Hostdressen

nicht vorherzusagen. Der Adressraum muss sorgfältig untergliedert werden, um

sicherzustellen, dass die Adressen nicht ausgehen. In den Jahren 1978 bis 1982, als

die Spezifikationen für die TCP/IP-Protokolle entwickelt wurden, ging man

davon aus, dass 2 32 oder etwa 4 Milliarden adressierbare Hosts (das entsprach zu

diesem Zeitpunkt etwa der Weltbevölkerung) ausreichend seien. Diese Einschätzung

hat sich aus zwei Gründen als zu kurzsichtig erwiesen:

– die Wachstumsrate des Internet hat alle Vorhersagen bei weitem übertroffen;

– der Adressraum wurde sehr viel ineffizienter zugewiesen und genutzt, als

vorgesehen.

Das Adressierungsschema muss die Entwicklung eines flexiblen und effizienten

Routing-Schemas unterstützen, aber die eigentlichen Adressen können nicht viele

von den Informationen aufnehmen, die benötigt werden, um ein Paket an sein

Ziel weiterzuleiten.

Das gewählte Schema weist jedem Host im Internet eine IP-Adresse zu – einen 32 Bit

langen numerischen Bezeichner, der eine Netzwerk-ID enthält, die eindeutig eines

der Teilnetze im Internet bezeichnet, sowie eine Host-ID, die die Verbindung des

Hosts zu diesem Netzwerk eindeutig identifiziert. Diese Adressen werden in IP-

Adressen platziert und dienen dazu, sie an ihr jeweiliges Ziel zu senden.

Abbildung 3.15 zeigt den Entwurf für den Internetadressraum. Es gibt vier Klassen

von Internetadressen – A, B, C und D. Klasse D ist für die Internet-Multicast-

Kommunikation reserviert, die nur in einigen Internet-Routern implementiert ist und

in Abschnitt 4.5.1 noch genauer beschrieben wird. Klasse E enthält einen Bereich

nicht zugewiesener Adressen, die für zukünftige Verwendungszwecke reserviert

sind.

Diese 32-Bit-Internetadressen, die eine Netzwerk-ID und eine Host-ID enthalten,

werden normalerweise als eine Folge aus vier Dezimalzahlen geschrieben, die durch

Punkte voneinander getrennt sind. Jede Dezimalzahl stellt eines der vier Bytes oder

Oktette der IP-Adresse dar. Abbildung 3.16 zeigt die erlaubten Werte für die einzelnen

Klassen der Netzwerkadressen.

Drei Adressklassen wurden darauf ausgelegt, die Anforderungen unterschiedlicher

Organisationsarten abzudecken. Klasse-A-Adressen mit einer Kapazität von 2 24


122

Kapitel 3 – Netzwerke und Internetworking

Abbildung 3.15

Struktur der Internetadressen, wobei die Feldgrößen in Bits dargestellt sind

Hosts in jedem Teilnetz sind für sehr große Netzwerke reserviert wie beispielsweise

das US NSFNet und andere nationale WANs. Klasse-B-Adressen werden Unternehmen

zugeordnet, die Netzwerke mit mehr als 255 Computern betreiben, und Klasse-

C-Adressen sind allen anderen Netzwerkbetreibern zugeordnet.

Abbildung 3.16

Dezimaldarstellung der Internetadressen

Internetadressen mit den Host-IDs 0 und sonst lauter Einsen (binär) werden für spezielle

Zwecke verwendet. Adressen mit der Host-ID 1 verweisen auf „diesen Host“

und eine Host-ID, die aus lauter Einsen besteht, adressiert eine Broadcast-Nachricht

an alle an das in der Netzwerk-ID der Adresse angegebene Netzwerk angeschlossenen

Hosts.

Netzwerk-IDs werden Organisationen, deren Netzwerke an das Internet angeschlossen

sind, über das NIC (Network Information Center) zugeteilt. Host-IDs für


3.4 Internet-Protokolle 123

die Computer in den an das Internet angeschlossenen Netzwerken werden vom

jeweiligen Administrator zugewiesen.

Weil Host-Adressen eine Netzwerk-ID enthalten, muss ein Computer, der an

mehrere Netzwerke angeschlossen ist, für jedes davon eine separate Adresse besitzen

und immer wenn ein Computer in ein anderes Netzwerk verschoben wird, muss sich

seine Internetadresse ändern. Diese Forderung führt zu wesentlichen administrativen

Overheads, beispielsweise bei portablen Computern.

In der Praxis hat sich das Zuordnungsschema für die IP-Adressen als sehr effektiv

erwiesen. Die größte Schwierigkeit ist, dass es für die Netzwerkadministratoren in

Benutzerunternehmen nicht ganz einfach ist, den zukünftigen Bedarf an Host-Adressen

vorherzusagen und sie ihn häufig überschätzen und im Zweifelsfall Klasse-B-

Adressen anfordern. Schon 1990 wurde in Anbetracht der zu diesem Zeitpunkt

erfolgten Zuordnungen offensichtlich, dass dem NIC die IP-Adressen etwa 1996 ausgehen

würden. Man ergriff zwei Maßnahmen. Die erste war, die Entwicklung eines

neuen IP-Protokolls und Adressierungsschemas zu initiieren, was zur Spezifikation

von IPv6 führte. Der zweite Schritt war, die Vorgehensweise bei der Zuordnung von

IP-Adressen radikal zu ändern. Ein neues Adresszuordnungs- und Routing-Schema

wurde eingeführt, das den IP-Adressraum effektiver nutzt: das so genannte klassenlose

Interdomain-Routing (CIDR). Wir beschreiben CIDR in Abschnitt 3.4.3.

Abbildung 3.10 zeigt einen Teil des Netzwerks am Lehrstuhl für Informatik am

Queen Mary and Westfield College, Universität London (Domainname:

dcs.qmw.ac.uk). Es enthält mehrere Teilnetze mit der Größe von Klasse-C-Adressräumen

(wobei CIDR verwendet wird, um einen Klasse-B-Adressraum zu unterteilen,

wie in Abschnitt 3.4.3 beschrieben) im Bereich von 128.37.88-138.37.95, die durch

Router miteinander verknüpft sind. Die Router verwalten die Auslieferung der IP-

Pakete an alle Teilnetze. Außerdem sind sie für den Verkehr zwischen den Teilnetzen

und von den Teilnetzen zur restlichen Welt verantwortlich.

Abbildung 3.17

Layout eines IP-Pakets

3.4.2 Das IP-Protokoll

Das IP-Protokoll überträgt Datagramme von einem Host zu einem anderen, gegebenenfalls

auch über dazwischen liegende Router. Das vollständige IP-Abbildung 3.17

Paketformat ist relativ komplex; zeigt die wichtigsten Komponenten. Es gibt mehrere

Header-Felder, die in diesem Diagramm nicht dargestellt sind und die von den Übertragungs-

und Routing-Algorithmen verwendet werden.

IP unterstützt einen Auslieferungsdienst, der auch als unzuverlässig beschrieben

wird, weil die Auslieferung nicht garantiert ist. Pakete können verloren gehen, doppelt

ankommen, verzögert oder in der falschen Reihenfolge ankommen, aber diese


124

Kapitel 3 – Netzwerke und Internetworking

Fehler treten nur dann auf, wenn die zu Grunde liegenden Netzwerke ausfallen oder

die Puffer am Ziel voll sind. Die einzige Prüfsumme in IP ist eine Header-Prüfsumme,

die relativ unaufwendig zu berechnen ist und die sicherstellt, dass Beschädigungen

der Daten für die Adressierung oder die Paketverwaltung erkannt werden.

Es gibt keine Datenprüfsumme, um Overheads beim Durchqueren von Routern zu

vermeiden, sodass es den Protokollen auf höherer Ebene überlassen bleibt (TCP und

UDP), eigene Prüfsummen bereitzustellen – ein praktisches Beispiel für das Ende-zu-

Ende-Argument (Abschnitt 2.2.1).

Die IP-Schicht verpackt IP-Datagramme in Netzwerkpakete, die für die Übertragung

in dem zu Grunde liegenden Netzwerk geeignet sind (wobei es sich beispielsweise

um ein Ethernet handeln könnte). Ist ein IP-Datagramm länger als die MTU des

zu Grunde liegenden Netzwerks, wird es an der Quelle in mehrere Pakete zerlegt

und am Ziel wieder zusammengesetzt. Pakete können weiter unterteilt werden, um

in anderen auf dem Weg von der Quelle vom Ziel eingesetzten Netzwerken übertragen

werden zu können. (Jedes Paket hat eine Fragment-ID, um auch Fragmente

zusammensetzen zu können, die nicht in der richtigen Reihenfolge angekommen

sind.)

Die IP-Schicht muss auch eine „physische“ Netzwerkadresse des Nachrichtenziels

einfügen. Diese ermittelt sie aus dem Adressauflösungsmodul der Netzwerkschnittstellenschicht,

das im nächsten Abschnitt beschrieben ist.

Adressauflösung Das Adressauflösungsmodul ist für die Umwandlung von

Internetadressen in Netzwerkadressen für ein spezielles zu Grunde liegendes Netzwerk

zuständig (manchmal auch als physische Adressen bezeichnet). Handelt es sich

beispielsweise bei dem Netzwerk um ein Ethernet, wandelt das Adressauflösungsmodul

32-Bit-Internetadressen in 48-Bit-Ethernet-Adressen um.

Diese Übersetzung ist von der Netzwerk-Technologie abhängig:

õ

õ

õ

Einige Hosts sind direkt mit Internet-Paket-Switches verbunden; IP-Pakete können

ohne eine Adressübersetzung an sie weitergeleitet werden.

Einige LANs erlauben, Hosts dynamisch Netzwerkadressen zuzuweisen und die

Adressen können praktischerweise so gewählt werden, dass sie genau der Host-

ID der Internetadresse entsprechen – für die Übersetzung wird einfach nur die

Host-ID aus der IP-Adresse extrahiert.

Für Ethernets und einige andere LANs ist die Netzwerkadresse jedes Computers

fest in der Netzwerkschnittstellen-Hardware kodiert und hat keine direkte Beziehung

zu einer Internetadresse – für die Übersetzung muss man die Entsprechung

zwischen IP-Adressen und Ethernet-Adressen für die Hosts auf dem lokalen

Ethernet kennen.

Jetzt skizzieren wir die Methode für die Auflösung von IP-Adressen in Ethernets.

Damit IP-Pakete auf einem Ethernet ausgeliefert werden können, muss jeder an das

Ethernet angeschlossene Computer das Adressauflösungs-Protokoll (ARP, Adress

Resolution Protocol) implementieren. Betrachten Sie zunächst den Fall, wo ein an ein

Ethernet angeschlossener Host-Computer IP verwendet, um eine Nachricht an einen

anderen Computer im selben Ethernet zu übertragen. Das IP-Softwaremodul auf dem

sendenden Computer muss die Internetadresse des Empfängers, die es im IP-Paket

findet, in eine Ethernet-Adresse übersetzen, damit das Paket ausgeliefert werden

kann. Dazu ruft sie das ARP-Modul auf dem sendenden Computer auf.


3.4 Internet-Protokolle 125

Das ARP-Modul verwaltet auf jedem Host einen Cache mit (IP-Adresse, Ethernet-

Adresse)-Paaren, die dieser in vorhergehenden Abfragen erhalten hat. Befindet sich

die angeforderte IP-Adresse im Cache, wird die Anfrage unmittelbar beantwortet.

Andernfalls überträgt das ARP ein Ethernet-Broadcastpaket (ein ARP-Anforderungspaket)

an das lokale Ethernet, das die gewünschte IP-Adresse enthält. Jeder Computer

im lokalen Ethernet erhält das ARP-Anforderungspaket und überprüft die darin

enthaltene IP-Adresse, ob sie mit seiner eigenen IP-Adresse übereinstimmt. Ist dies

der Fall, wird ein ARP-Antwortpaket an den Initiator der ARP-Anforderung mit der

Ethernet-Adresse des Senders gesendet; andernfalls wird das APR-Paket ignoriert.

Das initiierende ARP-Modul fügt die neue Zuordnung IP-Adresse → Ethernet-Adresse

in seinen lokalen Cache mit (IP-Adresse, Ethernet-Adresse)-Paaren ein, sodass es

zukünftige Anfragen dieser Art beantworten kann, ohne eine ARP-Anforderung

broadcasten zu müssen. Mit der Zeit enthält der ARP-Cache somit auf jedem Computer

ein (IP-Adresse, Ethernet-Adresse)-Paar für alle Computer, an die IP-Pakete gesendet

werden. ARP-Broadcasts werden also nur benötigt, wenn ein Computer neu an

das lokale Ethernet angeschlossen wird.

IP-Spionage Wir haben gesehen, dass IP-Pakete eine Quelladresse enthalten –

die IP-Adresse des sendenden Computers. Zusammen mit einer in das Datenfeld eingekapselten

Port-Adresse (für UDP- und TCP-Pakete) wird diese von Servern häufig

verwendet, um eine Rückgabeadresse zu erzeugen. Leider kann nicht garantiert werden,

dass die Quelladresse wirklich die Adresse des Senders angibt. Ein arglistiger

Sender könnte ganz einfach eine Adresse einsetzen, die nicht seine eigene ist. Diese

Sicherheitslücke ist Ursache vieler bekannter Angriffe, unter anderem ist sie auch für

den Angriff mit der verteilten Dienstverweigerung im Februar 2000 [Farrow 2000]

verantwortlich, wie in Abschnitt 1.4.3 bereits beschrieben. Dazu wurden viele ping-

Dienstanforderungen an sehr viele Computer in mehreren Systemen gesendet (ping

ist ein einfacher Dienst, der die Verfügbarkeit eines Hosts überprüft). Diese arglistigen

ping-Anforderungen enthielten alle in dem Feld für die Senderadresse die IP-

Adresse eines einzigen Zielcomputers. Die ping-Antworten wurden also alle an dieses

Ziel gesendet, dessen Puffer überschwemmt wurden, sodass keine legitimen IP-

Pakete mehr durchkommen konnten. Dieser Angriff wird in Kapitel 7 genauer

beschrieben.

3.4.3 IP-Routing

Die IP-Schicht routet Pakete von ihrer Quelle zu ihrem Ziel. Jeder Router im Internet

implementiert IP-Schicht-Software, um einen Routing-Algorithmus zu unterstützen.

Backbones Die topologische Karte des Internets ist konzeptuell in autonome Systeme

(AS) unterteilt, die wiederum in Bereiche unterteilt sind. Die Intranets der meisten

großen Organisationen, beispielsweise Universitäten und große Unternehmen,

werden als ASe betrachtet und beinhalten normalerweise mehrere Bereiche. In Abbildung

3.10 ist das Campus-Intranet ein AS und der gezeigte Ausschnitt ein Bereich.

Jedes AS in der topologischen Karte hat einen Backbone-Bereich. Die gesamten Router,

die andere als Backbone-Bereiche mit dem Backbone verbinden, sowie Verknüpfungen,

die diese Router verbinden, werden als das Backbone des Netzwerks bezeichnet.

Die Verbindungen im Backbone haben normalerweise hohe Bandbreite und werden

der Zuverlässigkeit halber repliziert. Diese hierarchische Struktur ist konzeptionell


126

Kapitel 3 – Netzwerke und Internetworking

und wird hauptsächlich für die Verwaltung von Ressourcen und Komponenten

genutzt. Das Routing von IP-Paketen wird dadurch nicht beeinflusst.

Routing-Protokolle RIP-1, der erste im Internet verwendete Routing-Algorithmus,

ist eine Variante des in Abschnitt 3.3.5 beschriebenen Distanzvektor-Algorithmus.

RIP-2 (siehe RFC 1388 [Malkin 1993]) wurde daraus abgeleitet, um einige

zusätzliche Anforderungen abzudecken wie beispielsweise das klassenlose Routing

zwischen Domains, ein besseres Multicast-Routing sowie die Forderung nach

Authentifizierung von RIP-Paketen, um Angriffe gegen die Router zu verhindern.

Weil das Internet größer geworden ist und die Verarbeitungskapazität der Router

gesteigert werden konnte, setzt man heute eher Algorithmen ein, die nicht unter der

langsamen Konvergenz und der möglichen Instabilität von Distanzvektor-Algorithmen

leiden. Stattdessen verwendet man immer mehr Algorithmen der Verbindungszustand-Klasse,

die in Abschnitt 3.3.5 beschrieben sind, sowie den so genannten

OSPF-Algorithmus (open shortest path first). Dieses Protokoll basiert auf einem Algorithmus

zur Suche von Pfaden, der auf Dijkstra [1959] zurückzuführen ist und für

den gezeigt wurde, dass er schneller konvergiert als der RIP-Algorithmus.

Beachten Sie, dass die Übernahme neuer Routing-Algorithmen in IP-Routern

inkrementell erfolgen kann. Eine Änderung eines Routing-Algorithmus führt zu

einer neuen Version des RIP-Protokolls und jedes RIP-Paket enthält eine Versionsnummer.

Das IP-Protokoll ändert sich nicht, wenn ein neues RIP-Protokoll eingeführt

wird. Ein IP-Router gibt eingehende IP-Pakete auf einer vernünftigen, wenn nicht

optimalen Route weiter, egal welche RIP-Version sie verwenden. Damit Router

jedoch bei der Aktualisierung ihrer Routing-Tabellen zusammenarbeiten können,

müssen sie einen ähnlichen Algorithmus verwenden. Für diesen Zweck werden die

oben definierten topologischen Bereiche definiert. Innerhalb jedes Bereichs wird ein

einzelner Routing-Algorithmus verwendet und die Router innerhalb eines Bereichs

arbeiten bei der Verwaltung ihrer Routing-Tabellen zusammen. Router, die nur RIP-1

unterstützen, sind immer noch weit verbreitet und unter Ausnutzung der Funktionen

zur Abwärtskompatibilität der neueren Protokolle existieren sie zusammen mit

Routern, die RIP-2 und OSPF einsetzen.

1993 zeigten empirische Beobachtungen [Floyd und Johnson 1993], dass die 30-

Sekunden-Frequenz, mit der IP-Router Informationen austauschen, eine Periodizität

bei der Leistung der IP-Übertragungen verursachte. Die durchschnittliche Latenz für

IP-Paketübertragungen zeigte in 30-Sekunden-Intervallen Spitzen. Dies führte man

auf das Verhalten der Router zurück, die das RIP-Protokoll ausführten – beim Empfang

eines RIP-Pakets verzögern die Router die Weitergabe von IP-Paketen, die sie

noch enthalten, bis der Aktualisierungs-Prozess für alle bisher empfangenen RIP-

Pakete abgeschlossen war. Daraus entstand die Tendenz für die Router, die RIP-Aktionen

holprig auszuführen. Die für die Router empfohlene Lösung war, einen Zufallswert

im Bereich von 15 bis 45 Sekunden für das RIP-Aktualisierungsintervall zu verwenden.

Standard-Router Bis jetzt ist unsere Diskussion der Routing-Algorithmen

davon ausgegangen, dass jeder Router eine vollständige Routing-Tabelle verwaltet,

die die Route für jedes Ziel im Internet enthält (Teilnetze oder direkt an den Host

angeschlossen). Bei der aktuellen Größe des Internets ist das offensichtlich nicht mehr

machbar (die Anzahl der Ziele beträgt möglicherweise schon über eine Million und

wächst extrem schnell an).

Es fallen einem sofort zwei mögliche Lösungen für dieses Problem ein, die beide

bereits eingesetzt wurden, um die Auswirkungen des Internet-Wachstums abzu-


3.4 Internet-Protokolle 127

schwächen. Die erste Lösung ist, eine Art topologischer Gruppierung der IP-Adressen

vorzunehmen. Vor 1993 konnte aus einer IP-Adresse nichts über deren Standort

abgeleitet werden. Im Zuge der Bestrebungen, die Zuweisungen von IP-Adressen zu

vereinfachen und ökonomischer zu gestalten, wie im Abschnitt über CIDR beschrieben,

wurde 1993 für alle zukünftigen Zuweisungen entschieden, die folgenden regionalen

Unterscheidungen zu treffen:

Adressen 194.0.0.0 bis 195.255.255.255 befinden sich in Europa.

Adressen 198.0.0.0 bis 199.255.255.255 befinden sich in Nordamerika.

Adressen 200.0.0.0 bis 201.255.255.255 befinden sich in Zentral- und Südamerika.

Adressen 202.0.0.0 bis 195.203.255.255 befinden sich in Asien und im pazifischen

Gebiet.

Weil diese geografischen Bereiche auch wohl definierten topologischen Bereichen im

Internet entsprechen und nur ein paar wenige Gateway-Router Zugriff auf die einzelnen

Bereiche gewähren, wird dadurch eine wesentliche Vereinfachung der Routing-

Tabellen für diese Adressbereiche erzielt. Beispielsweise kann ein Router außerhalb

von Europa einen einzigen Tabelleneintrag für den Bereich der Adressen 194.0.0.0 bis

195.255.255.255 haben, der alle IP-Pakete mit Zielen in diesem Bereich auf derselben

Route zum nächstliegenden europäischen Gateway-Router sendet. Beachten Sie, dass

die IP-Adressen vor dieser Entscheidung größtenteils ohne Berücksichtigung der

Topologie oder Geografie zugewiesen wurden. Viele dieser Adressen werden heute

immer noch verwendet und die Entscheidung von 1993 reduziert die Routing-Tabelleneinträge

für diese Adressen in keiner Weise.

Die zweite Lösung, mit dem explosionsartigen Wachstum der Routing-Tabellen

zurechtzukommen, ist viel einfacher und sehr effektiv. Sie basiert auf der Beobachtung,

dass die Genauigkeit von Routing-Informationen für die meisten Router gelockert

werden kann, solange einige Schlüssel-Router, nämlich solche, die am nächsten

bei den Backbone-Verbindungen liegen, relativ vollständige Routing-Tabellen haben.

Diese Lockerung erfolgt in Form eines Standard-Zieleintrags in Routing-Tabellen.

Betrachten Sie dazu Abbildung 3.7 und Er muss sein Wissen über das Netzwerk ständig

aktualisieren, indem er den Verkehr beobachtet und Konfigurationsänderungen

oder Fehler erkennt. Diese Aktivität ist weniger zeitkritisch; hier können langsamere

und weniger rechenintensive Techniken verwendet werden. und stellen Sie sich vor,

die Routing-Tabelle für Knoten C wird wie folgt abgeändert:

Routings von C

An Verbindung Kosten

B 2 1

C lokal 0

E 5 1

Standard 5 -

Damit ignoriert Knoten C die Knoten A und D. Er leitet alle an sie adressierten Pakete

über Link 5 an E weiter. Was folgt daraus? Pakete, die an D adressiert sind, erreichen


128

Kapitel 3 – Netzwerke und Internetworking

ihr Ziel ohne Effizienzverlust beim Routing, aber die an A adressierten Pakete führen

einen zusätzlichen hop aus und werden durch E und B geleitet. Im Allgemeinen hebt

sich bei der Verwendung von Standard-Routen die Routing-Effizienz gegenüber der

Tabellengröße auf. In einigen Fällen jedoch, insbesondere wenn sich ein Router auf

einem „Ausläufer“ befindet, sodass alle ausgehenden Nachrichten einen einzelnen

Punkt durchlaufen müssen, gibt es keinen Effizienzverlust. Das Standard-Routenschema

wird für das Internet-Routing häufig eingesetzt; kein Router enthält die Routen

zu allen Zielen im Internet.

Routing in einem lokalen Teilnetz Pakete, die an Hosts im selben Netzwerk wie

der Sender adressiert sind, werden innerhalb eines einzigen hops an den Ziel-Host

übertragen, wobei die Host-ID der Adresse verwendet wird, um die Adresse des

Ziel-Hosts im zu Grunde liegenden Netzwerk zu ermitteln. Die IP-Schicht verwendet

einfach ARP, um die Netzwerkadresse des Ziels zu erhalten, und überträgt die Pakete

dann über das zu Grunde liegende Netzwerk.

Erkennt die IP-Schicht im sendenden Computer, dass das Ziel in einem anderen

Netzwerk liegt, muss sie die Nachricht an einen lokalen Router senden. Mithilfe von

ARP ermittelt sie die Netzwerkadresse des Gateways oder Routers und überträgt das

Paket dann über das zu Grunde liegende Netzwerk. Gateways und Router sind an

zwei oder mehr Netzwerke angeschlossen und haben mehrere Internetadressen: eine

für jedes Netzwerk, an das sie angeschlossen sind.

CIDR (Classless Interdomain Routing) Der in Abschnitt 3.4.1 beschriebene

Nachteil der IP-Adressen führte 1996 zur Einführung dieses Schemas für die Zuweisung

von Adressen und die Verwaltung der Einträge in Routing-Tabellen. Das größte

Problem war die Knappheit von Klasse-B-Adressen – für Teilnetze mit mehr als 255

angeschlossenen Hosts. Klasse-C-Adressen standen in ausreichender Anzahl zur Verfügung.

Die CIDR-Lösung für dieses Problem ist, einem Teilnetz, das mehr als 255

Adressen brauchte, mehrere fortlaufende Klasse-C-Adressen zuzuweisen. Das CIDR-

Schema ermöglicht außerdem, einen Klasse-B-Adressraum für die Zuweisung an

mehrere Teilnetze zu unterteilen.

Das Stapeln von Klasse-C-Adressen scheint eine recht einfache Lösung zu sein,

aber wenn es nicht mit einer Änderung des Routing-Tabellenformats einhergeht, hat

es einen wesentlichen Einfluss auf die Größe der Routing-Tabellen und damit auf die

Effizienz der Algorithmen für ihre Verwaltung. Man einigte sich auf die Änderung,

ein Feld der Routing-Tabellen zu maskieren. Die Maske ist ein Bitmuster, mit dem der

Teil einer IP-Adresse ausgewählt wird, der mit dem Routing-Tabelleneintrag verglichen

wird. Damit ist es letztlich möglich, dass die Host/Teilnetz-Adresse ein beliebiger

Teil der IP-Adresse ist, weshalb mehr Flexibilität erzielt wird als durch die Klassen

A, B und C. Daher auch der Name klassenloses Interdomain-Routing. Auch hier

erfolgen die Änderungen an Routern inkrementell, sodass einige Router CIDR ausführen,

während andere noch die alten, auf Klassen basierenden Algorithmen verwenden.

Das funktioniert, weil die neu reservierten Bereiche der Klasse-C-Adressen

modulo 256 zugewiesen werden, sodass jeder Bereich eine integrale Anzahl von Teilnetz-Adressen

der Klasse-C-Größe darstellt. Andererseits verwenden einige Teilnetze

auch CIDR, um den Adressbereich in einem einzelnen Netzwerk der Klasse A, B oder

C zu unterteilen. Werden mehrere Teilnetze ausschließlich über CIDR-Router mit

dem Rest der Welt verbunden, können die Bereiche der dafür verwendeten IP-Adressen

einzelnen Teilnetzen in Abschnitten zugewiesen werden, die durch eine binäre

Maske beliebiger Größe festgelegt werden.


3.4 Internet-Protokolle 129

Beispielsweise kann ein Klasse-C-Adressraum in 32 Gruppen von je acht Adressen

unterteilt werden. Abbildung 3.10 zeigt ein Beispiel für die Verwendung des CIDR-

Mechanismus, um das Teilnetz 138.37.95 der Größe eines Klasse-C-Netzwerks in

mehrere Gruppen mit acht Host-Adressen zu zerlegen, für die das Routing auf

jeweils unterschiedliche Weise erfolgt. Die separaten Gruppen werden durch die

Notationen 138.37.95.232/29, 138.37.95.248/29 usw. dargestellt. Der Adressteil /29

stellt eine 32-Bit-Binärmaske mit 29 führenden Einsen und 3 nachfolgenden Nullen

dar.

Abbildung 3.18

Layout eines IPv6-Headers

-L

3.4.4 IP-Version 6

Es wurde auch nach einer dauerhafteren Lösung für die Adressprobleme von IPv4

gesucht, was zur Entwicklung und zum Einsatz einer neuen Version des IP-Protokolls

mit sehr viel größeren Adressen führte. Das IETF erkannte bereits 1990 die

potentiellen Probleme, die durch die 32-Bit-Adressen von IPv4 entstehen konnten,

und rief ein Projekt zur Entwicklung einer neuen Version des IP-Protokolls ins Leben.

1994 übernahm die IETF IPv6 und es wurde auch eine Strategie für die Migration

empfohlen.

Abbildung 3.18 zeigt das Layout von IPv6-Headern. Wir wollen den Aufbau hier

nicht detailliert betrachten. Interessierte Leser seien auf [Tanenbaum 1996] und [Stallings

1998a] verwiesen, wo sie allgemeine Informationen über IPv6 finden, sowie auf

[Huitema 1998], das eine schrittweise Beschreibung des Entwurfs-Prozesses von IPv6

sowie Implementierungspläne beinhaltet. Hier werden wir nur die wichtigsten Vorteile

skizzieren, die IPv6 mit sich bringt.

Adressraum: IPv6-Adressen sind 128 Bit (16 Byte) lang. Daraus ergibt sich eine

wahrlich astronomische Anzahl adressierbarer Einheiten: 2 128 bzw. fast 3 x 10 38 .

Tanenbaum berechnet, dass dies ausreichend ist, um 7 x 10 23 IP-Adressen pro

Quadratmeter Erdoberfläche bereitzustellen. Hitema hat eine konservativere

Berechnung angestellt, die voraussetzt, dass die IP-Adressen so ineffizient wie

Telefonnummern zugewiesen werden, und kam auf etwa 1.000 IP-Adressen pro

Quadratmeter Erdoberfläche (Land und Wasser).


130

Kapitel 3 – Netzwerke und Internetworking

Der IPv6-Adressraum ist partitioniert. Wir können hier nicht detailliert auf die

Partitionierung eingehen, aber selbst die kleineren Partitionen (von denen eine

den gesamten Bereich aller IPv4-Adressen bei einer 1:1-Abbildung enthält) sind

sehr viel größer als der gesamte IPv4-Raum. Viele Partitionen (etwa 72%) sind für

noch nicht definierte Aufgaben reserviert. Zwei große Partitionen (die je 1/8 des

Adressraums einnehmen) werden für allgemeine Zwecke bereitgestellt und normalen

Netzwerkknoten zugewiesen. Eine davon soll gemäß der geografischen

Positionen der adressierten Knoten strukturiert werden, die andere gemäß ihrer

organisatorischen Positionen. Damit sind zwei alternative Strategien für die

Gruppierung von Adressen für Routing-Zwecke möglich – es bleibt abzuwarten,

welche davon sich als effektiver oder beliebter erweisen wird.

Routing-Geschwindigkeit: Die Komplexität des grundlegenden IPv6-Headers und

die Verarbeitung, die in jedem Knoten anfällt, werden reduziert. Auf den Paketinhalt

(Nutzlast) wird keine Prüfsumme angewendet und es kann keine Fragmentierung

mehr erfolgen, nachdem ein Paket auf die Reise geschickt wurde. Das erstere

wird als akzeptabel betrachtet, weil Fehler auf höheren Ebenen erkannt

werden können (TCP beinhaltet eine Inhaltsprüfsumme), und das letztere wird

durch einen Mechanismus zur Ermittlung der kleinsten MTU vor der Übertragung

eines Pakets kompensiert.

Echtzeit- und andere spezielle Dienste: Die Felder für Priorität und Flussbezeichnung

beschäftigen sich genau mit diesen Aspekten. Multimedia-Streams und andere

Folgen mit Echtzeit-Datenelementen können als Teil eines identifizierten Flusses

übertragen werden. Das Feld für die Priorität kann in Kombination mit der Flussbezeichnung

verwendet werden oder auch unabhängig, um zu ermöglichen, dass

bestimmte Pakete schneller oder mit einer höheren Zuverlässigkeit als andere verarbeitet

werden. Die Prioritätswerte von 0 bis 8 sind für Übertragungen vorgesehen,

die langsamer ausgeführt werden können, ohne dass dies nachteilige Auswirkungen

auf die Applikation hätte. Die Werte zwischen 8 und 15 sind für

Pakete reserviert, deren Auslieferung zeitkritisch ist. Solche Pakete müssen entweder

sofort ausgeliefert oder verworfen werden – eine verspätete Auslieferung

hat keinen Sinn.

Flussbezeichnungen ermöglichen, bestimmte Ressourcen zu reservieren, um

die Timing-Anforderungen spezieller Echtzeit-Daten-Stream-Streams zu erfüllen

wie beispielsweise Live-Audio oder -Video-Übertragungen. Kapitel 15 beschreibt

diese Anforderungen und Methoden für die entsprechende Zuweisung der Ressourcen.

Natürlich verfügen Router und Übertragungsverbindungen im Internet

nur über begrenzte Ressourcen und das Konzept, sie für bestimmte Benutzer und

Applikationen zu reservieren, wurde nie zuvor in Betracht gezogen. Die Nutzung

dieser Funktionsmerkmale von IPv6 ist von umfassenderen Verbesserungen der

Infrastruktur und der Entwicklung passender Methoden für die Gebührenerhebung

und Entscheidung der Ressourcenzuteilung abhängig.

Weitere Entwicklung: Der Schlüssel für die weitere Entwicklung ist das Feld für

den nächsten Header. Ist es ungleich Null, definiert es den Typ eines Erweiterungs-Headers,

der im Paket enthalten ist. Momentan gibt es Erweiterungs-Header-Typen,

die zusätzliche Daten für spezielle Dienste der folgenden Arten bereitstellen:

Informationen für Router, Routen-Definition, Fragmentverarbeitung,

Authentifizierung, Verschlüsselungsinformation und Zielverarbeitungsinformation.

Jeder Erweiterungs-Header-Typ hat eine spezielle Größe und ein definiertes


3.4 Internet-Protokolle 131

Format. Weitere Erweiterungs-Header-Typen werden definiert, sobald neue

Dienstanforderungen entstehen. Ein Erweiterungs-Header folgt, falls vorhanden,

dem Basis-Header, geht der Nutzlast voraus und beinhaltet ebenfalls wieder ein

Feld für einen nächsten Header, sodass mehrere Erweiterungs-Header verwendet

werden können.

Multicast und Anycast: Sowohl IPv4 als auch IPv6 unterstützen die Übertragung

von IP-Paketen an mehrere Hosts unter Verwendung einer einzigen Adresse (die

in dem Bereich für diesen Zweck reserviert ist). Die IP-Router sind dann verantwortlich,

das Paket an alle Hosts weiterzuleiten, die der durch die betreffende

Adresse identifizierten Gruppe beigetreten sind. Weitere Informationen zur IP-

Multicast-Kommunikation finden Sie in Abschnitt 4.5.1. Darüber hinaus unterstützt

IPv6 einen neuen Übertragungsmodus, Anycast. Dieser Dienst liefert ein

Paket an mindestens einen der Hosts aus, der sich unter der betreffenden Adresse

registriert hat.

Sicherheit: Bisher vertrauten Internet-Applikationen, die eine authentifizierte oder

private Datenübertragung brauchten, auf die Verwendung von Verschlüsselungstechniken

auf der Applikationsschicht. Das Ende-zu-Ende-Argument untermauert

die Ansicht, dass dies der richtige Ort dafür ist. Wenn die Sicherheit auf der IP-

Ebene implementiert ist, sind Benutzer und Applikation von der Korrektheit des

Codes abhängig, den sie in jedem Router auf der Strecke implementiert, und sie

müssen den Routern und anderen dazwischen liegenden Knoten den Umgang

mit den Schlüsseln zur Verschlüsselung anvertrauen.

Der Vorteil bei der Implementierung von Sicherheit auf IP-Ebene ist, dass sie

angewendet werden kann, ohne dass die Applikationsprogramme in Hinblick auf

die Sicherheit implementiert worden sein müssen. Beispielsweise können Systemmanager

sie in einer Firewall implementieren und einheitlich auf die gesamte

Kommunikation anwenden, ohne dass die interne Kommunikation verschlüsselt

werden müsste. Auch Router können einen Sicherheitsmechanismus auf IP-Ebene

nutzen, um die Aktualisierungsnachrichten der Routing-Tabelle zu schützen, die

sich untereinander austauschen.

In IPv6 wird Sicherheit über die Erweiterungs-Header-Typen authentication

und encrypted security payload implementiert. Diese implementieren Funktionsmerkmale,

die dem in Abschnitt 2.3.3 vorgestellten Konzept der sicheren Kanäle

entsprechen. Die Nutzlast wird je nach Bedarf verschlüsselt und/oder digital signiert.

Ähnliche Sicherheitsmerkmale gibt es auch in IPv4 unter Verwendung des

IP-Tunnellings zwischen Routern oder Hosts, die die IPSec-Spezifikation implementieren

(siehe RFC 2411 [Thayer 1998]).

Migration von IPv4 Der Wechsel des grundlegenden Protokolls hat für die existierende

Internet-Infrastruktur weitreichende Konsequenzen. IP wird im TCP/IP-Protokollstapel

in jedem Host und in der Software eines jeden Routers eingesetzt. In

unzähligen Applikationen und Utilities werden IP-Adressen verwendet. Und für sie

alle muss ein Upgrade vorgenommen werden, sodass sie die neue IP-Version unterstützen.

Aber der Umstieg ist unvermeidbar, weil der von IPv4 gebotene Adressraum

keinen weiteren Platz mehr bietet. Außerdem hat die Arbeitsgruppe von IETF, die für

IPv6 verantwortlich ist, bereits eine Migrationsstrategie definiert – dabei sollen letztlich

zunächst „Inseln“ mit IPv6-Routern und Hosts implementiert werden, die über

Tunnel mit anderen IPv6-Inseln kommunizieren und langsam zu größeren Inseln


132

Kapitel 3 – Netzwerke und Internetworking

anwachsen. Wie wir bereits erwähnt haben, sollte es für IPv6-Router und -Hosts kein

Problem sein, kombinierten Verkehr zu verarbeiten, weil der IPv4-Adressraum in den

IPv6-Adressraum eingebettet ist.

Die Theorie für diese Strategie hört sich vielleicht technisch durchdacht an, aber

es wurden bisher kaum Fortschritte bei der Implementierung gemacht, weil die Wirtschaft

dagegen ist. Wir hoffen, dass die Internet-Gemeinde durch die drohenden Einschränkungen

auf Grund des Internet-Wachstums irgendwann genug motiviert ist,

die erforderlichen Investitionen vorzunehmen und die Software für Router- und

Host-Protokolle zu aktualisieren, die Applikationen anzupassen und alle daraus entstehenden

Folgen in Kauf zu nehmen.

3.4.5 MobileIP

Mobile Computer wie beispielsweise Laptops oder Palmtops sind immer wieder von

anderen Orten aus mit dem Internet verbunden. Im Büro des Besitzers könnte ein

Laptop an ein lokales Ethernet angeschlossen werden, das über einen Router mit dem

Internet verbunden ist, auf der Fahrt im Auto oder im Zug könnte er über ein Mobiltelefon

verbunden sein und anschließend könnte er an ein Ethernet in irgendeinem

anderen Büro angeschlossen werden. Der Benutzer braucht jedoch an all diesen

Orten Zugriff auf Dienste wie beispielsweise E-Mail oder das Web.

Für den einfachen Zugriff auf Dienste ist es für einen mobilen Computer nicht

erforderlich, eine einzige Adresse beizubehalten, und er kann in jedem System eine

neue IP-Adresse verwenden; dies ist die Aufgabe von DHCP (Dynamic Host Configuration

Protocol), das einem neu angeschlossenen Computer ermöglicht, eine temporäre

IP-Adresse sowie die Adressen lokaler Ressourcen wie beispielsweise eines

DNS-Servers vom lokalen DHCP-Server anzufordern. Außerdem muss er erkennen,

welche lokalen Dienste (z.B. Drucken, Mail-Auslieferung usw.) in den besuchten

fremden Systemen zur Verfügung stehen. Discovery-Dienste sind eine Art Namensdienst,

die dabei helfen; sie sind in Kapitel 9 beschrieben.

Auf dem Laptop kann es Dateien oder Ressourcen geben, auf die andere Benutzer

Zugriff benötigen, oder der Laptop könnte in einer verteilten Applikation ausgeführt

werden, beispielsweise in einem Aktienbeobachtungsdienst, der Benachrichtigungen

über bestimmte Ereignisse erhält, wenn etwa die vom Benutzer gehaltenen Aktien

einen bestimmten Schwellenwert überschreiten. Soll ein Computer auch dann Clients

und -Ressourcen-teilenden Applikationen zur Verfügung stehen, wenn er zwischen

lokalen Netzwerken und Funknetzwerken wechselt, muss er eine einzige IP-Adresse

beibehalten, aber das IP-Routing basiert auf Teilnetzen. Teilnetze befinden sich an

einer festen Position und das korrekte Routing der Pakete an sie ist von ihrer Position

im Netzwerk abhängig.

MobileIP ist eine Lösung für dieses Problem. Die Lösung wird transparent implementiert,

sodass die IP-Kommunikation normal fortgesetzt wird, wenn sich ein mobiler

Host-Computer zwischen Teilnetzen an verschiedenen Positionen bewegt. Sie

basiert auf der permanenten Zuweisung einer normalen IP-Adresse an jeden mobilen

Host in einem Teilnetz in seiner „Home“-Domain.

Ist der mobile Host mit seiner Home-Basis verbunden, werden Pakete ganz normal

an ihn geleitet. Ist er an anderer Stelle mit dem Internet verbunden, übernehmen

zwei Agenten-Prozesse die Verantwortung für die Umleitung. Bei diesen beiden

Agenten handelt es um den Home-Agent (HA) und den Foreign Agent (FA). Diese Pro-


3.4 Internet-Protokolle 133

Abbildung 3.19

Der MobileIP-Routing-Mechanismus

zesse werden auf geeigneten festen Computern auf dem Home-System und an der

aktuellen Position des mobilen Hosts ausgeführt.

Der HA ist verantwortlich dafür, aktuelle Informationen über die aktuelle Position

des mobilen Hosts bereitzustellen (die IP-Adresse, unter der er erreicht werden

kann). Dazu braucht er die Hilfe des mobilen Hosts. Verlässt ein mobiler Host sein

Home-System, sollte er den HA darüber informieren und der HA zeichnet die Abwesenheit

des mobilen Hosts auf. Während der Abwesenheit verhält er sich wie ein

Proxy. Dazu weist er die lokalen Router an, alle im Cache befindlichen Aufzeichnungen

zur IP-Adresse des mobilen Hosts zu verwerfen. Während er als Proxy agiert,

reagiert der HA auf ARP-Anforderungen zur IP-Adresse des mobilen Hosts, indem

er seine eigene lokale Netzwerkadresse als Netzwerkadresse des mobilen Hosts

anbietet.

Kommt der mobile Host in dem neuen System an, informiert er den FA in diesem

System. Der FA weist ihm eine neue, temporäre IP-Adresse im lokalen Teilnetz zu.

Anschließend benachrichtigt der FA den HA und teilt ihm die Home-IP-Adresse des

mobilen Hosts sowie die zugewiesene temporäre Adresse mit.

Abbildung 3.19 zeigt den MobileIP-Routing-Mechanismus. Kommt im Home-

Netzwerk ein IP-Paket an, das an die Home-Adresse des mobilen Hosts adressiert ist,

wird es an den HA weitergeleitet. Der HA packt das IP-Paket in ein MobileIP-Paket

ein und sendet es an den FA. Der FA packt das ursprüngliche IP-Paket aus und liefert

es über das lokale Netzwerk, an das der mobile Host gerade angeschlossen ist, an diesen

aus. Beachten Sie, dass die Methode, nach der der HA und der FA das ursprüngliche

Paket an den gewünschten Empfänger weiterleiten, ein Beispiel für die in

Abschnitt 3.3.7 beschriebene Tunnelling-Technik ist.

Der HA sendet die temporäre Adresse des mobilen Hosts auch an den ursprünglichen

Sender. Ist der Sender MobileIP-fähig, zeichnet er die neue Adresse auf und verwendet

sie für die nachfolgende Kommunikation mit dem mobilen Host, sodass der

Overhead vermieden wird, der durch die Umleitung über den HA entsteht. Ist er es

nicht, ignoriert er den Adresswechsel und die nachfolgende Kommunikation wird

weiterhin über den HA geleitet.

Die MobileIP-Lösung ist effektiv, aber kaum effizient. Eine Lösung, die mobile

Hosts als First-Class-Bürger behandelt, wäre zu bevorzugen, sodass sie sich bewegen

könnten, ohne dies zuvor ankündigen zu müssen, und damit das Routing der Pakete


134

Kapitel 3 – Netzwerke und Internetworking

ohne Tunnelling oder Umleitung möglich ist. Wir möchten anmerken, dass diese

scheinbar schwierige Aufgabe genau das ist, was vom Mobiltelefonnetzwerk bereits

geleistet wird – die Mobiltelefone wechseln nicht die Nummer, wenn sie sich zwischen

Zellen oder sogar über verschiedene Länder hinweg bewegen. Stattdessen

informieren sie einfach die lokale Basisstation in bestimmten Zeitabständen über ihre

Position.

3.4.6 TCP und UDP

TCP und UDP stellen die Kommunikationsfähigkeit des Internets in einer Form

bereit, die für Applikationsprogramme geeignet ist. Applikationsentwickler wünschen

sich möglicherweise andere Transportdienste, um beispielsweise Echtzeit-

Garantien oder Sicherheit zu realisieren, aber für einen solchen Dienst wäre im Allgemeinen

sehr viel mehr Unterstützung durch die Netzwerkschicht erforderlich, als

IPv4 bietet. TCP und UDP können auf der Applikationsebene in Hinblick auf die

Kommunikationsmöglichkeiten als zuverlässige Reflektion dessen betrachtet werden,

was IPv4 bietet. Bei IPv6 handelt es sich um etwas anderes; es wird TCP und

UDP sicher weiter unterstützen, bietet aber Möglichkeiten, die mit TCP und UDP

alleine nicht genutzt werden können. Es könnte sein, dass zusätzliche Transportdienste

eingeführt werden müssen, um sie nutzen zu können, nachdem IPv6 so weit

verbreitet ist, dass ihre Entwicklung gerechtfertigt ist.

Kapitel 4 beschreibt die Eigenschaften von TCP und UDP aus der Perspektive der

Entwickler verteilter Programme. Hier werden wir nur kurz auf die Funktionalität

eingehen, die sie IP hinzufügen.

Verwendung von Ports Als erste Eigenschaft soll hier angeführt werden, dass

TCP und UDP als Transport-Protokolle eine Prozess-zu-Prozess-Kommunikation

unterstützen müssen, während IP die Kommunikation zwischen Computern (die

durch ihre IP-Adressen angegeben werden) unterstützt. Dazu werden Ports verwendet.

Port-Nummern adressieren Nachrichten an Prozesse innerhalb eines bestimmten

Computers und sind nur innerhalb dieses Computers gültig. Eine Port-Nummer ist

ein 16-Bit-Integer. Nachdem ein IP-Paket an den Ziel-Host ausgeliefert wurde, gibt

die TCP- oder UDP-Schicht-Software dasselbe über einen bestimmten Port dieses

Hosts weiter.

UDP-Funktionsmerkmale UDP kann mit einer IP-Replik auf Transportebene

verglichen werden. Ein UDP-Datagramm ist in ein IP-Paket gekapselt. Es hat einen

kurzen Header, der die Port-Nummern der Quelle und des Ziels enthalten (die entsprechenden

Host-Adressen sind im IP-Header enthält), ein Feld für die Länge sowie

eine Prüfsumme. UDP bietet keine Auslieferungsgarantie. Wir haben bereits angemerkt,

dass IP-Pakete auf Grund einer Überlastung oder eines Netzwerkfehlers verworfen

werden können. UDP führt keine zusätzlichen Zuverlässigkeitsmechanismen

ein, außer einer optionalen Prüfsumme. Ist das Prüfsummenfeld ungleich Null,

berechnet der empfangende Host einen Prüfwert aus dem Paketinhalt und vergleicht

ihn mit der empfangenen Prüfsumme; Pakete, bei denen die beiden Werte nicht übereinstimmen,

werden verworfen.

UDP bietet damit eine Möglichkeit, Nachrichten bis zu 64 Kbyte Größe (die von IP

maximal erlaubte Paketgröße) zwischen Prozesspaaren zu übertragen (oder von

einem Prozess aus an mehrere, falls Datagramme an IP-Multicast-Adressen adressiert

sind), mit minimalen zusätzlichen Kosten oder Übertragungsverzögerungen über die


3.4 Internet-Protokolle 135

der IP-Übertragung hinaus. Es fallen keine Setup-Kosten an und es ist keine administrative

Bestätigung der Nachrichten erforderlich. Seine Verwendung ist aber auf

Applikationen und Dienste beschränkt, für die keine zuverlässige Auslieferung einzelner

oder mehrerer Nachrichten erforderlich ist.

TCP-Funktionsmerkmale TCP stellt einen sehr viel komplexeren Transportdienst

zur Verfügung. Es unterstützt eine zuverlässige Auslieferung beliebig langer

Bytefolgen über eine -Streambasierte Programmierabstraktion. Die Zuverlässigkeitsgarantie

beinhaltet die Auslieferung aller der TCP-Software vom sendenden Prozess

präsentierten Daten an den empfangenden Prozess, und zwar in der richtigen Reihenfolge.

TCP ist verbindungsorientiert. Bevor Daten übertragen werden, müssen

der sendende und der empfangende Prozess zusammen einen bidirektionalen Kommunikationskanal

einrichten. Bei der Verbindung handelt es sich einfach um eine

Ende-zu-Ende-Vereinbarung, die eine zuverlässige Datenübertragung zulässt; Zwischenknoten

wie beispielsweise Router wissen nichts über TCP-Verbindungen und

die IP-Pakete, die die Daten in einer TCP-Übertragung transportieren, müssen nicht

unbedingt derselben Route folgen.

Die TCP-Schicht beinhaltet zusätzliche Mechanismen (die über IP implementiert

sind), um Zuverlässigkeit gewähren zu können. Es handelt sich dabei um die folgenden

Mechanismen:

Sequenzierung: Ein sendender TCP-Prozess unterteilt den Stream in eine Folge von

Datensegmenten und überträgt sie als IP-Pakete. Jedem TCP-Segment wird eine

Folgenummer mitgegeben. Sie gibt die Nummer des Bytes innerhalb des Streams

für das erste Byte des Segments an. Der Empfänger bringt die empfangenen Segmente

mithilfe der Folgenummern in die korrekte Reihenfolge, bevor er sie in den

Eingabe-Stream des empfangenden Prozesses platziert. Ein Segment kann erst

dann im Eingabe-Stream platziert werden, nachdem alle Segmente mit kleinerer

Nummer empfangen und im Stream platziert wurden, sodass Segmente, die nicht

in der richtigen Reihenfolge eintreffen, in einem Puffer aufbewahrt werden müssen,

bis ihre Vorgänger eingetroffen sind.

Flusssteuerung: Der Sender kümmert sich darum, den Empfänger oder die Zwischenknoten

nicht zu überlasten. Dazu wird ein System aus Segmentbestätigungen

verwendet. Immer wenn ein Empfänger ein Segment erfolgreich erhalten hat,

zeichnet er dessen Folgenummer auf. Der Empfänger sendet in bestimmten Zeitintervallen

eine Bestätigung an den Sender und gibt die Folgenummer des Segments

mit der höchsten Nummer in seinem Eingabe-Stream zusammen mit einer

Fenstergröße darin an. Falls es einen rückfließenden Datenfluss gibt, werden diese

Bestätigungen in den normalen Datensegmenten transportiert, andernfalls in speziellen

Bestätigungssegmenten. Das Feld für die Fenstergröße im Bestätigungssegment

gibt die Datenmenge an, die der Sender vor dem Eintreffen der nächsten

Bestätigung senden darf.

Wird eine TCP-Verbindung für die Kommunikation mit einem entfernten

interaktiven Programm verwendet, werden möglicherweise kleine Datenmengen

erzeugt, aber in sehr schneller Abfolge. Beispielsweise erzeugt die Tastatureingabe

nur ein paar Zeichen pro Sekunde, aber die Zeichen sollten ausreichend

schnell übertragen werden, sodass die Benutzer die Ergebnisse beim Schreiben

sehen können. Dazu setzt man ein Timeout T für lokale Puffer – normalerweise

0,5 Sekunden. Bei diesem einfachen Schema wird ein Segment an den Empfänger

gesendet, wenn Daten T Sekunden lang im Ausgabepuffer warten oder wenn der


136

Kapitel 3 – Netzwerke und Internetworking

Inhalt des Puffers die MTU-Obergrenze erreicht. Dieses Pufferschema kann nicht

mehr als T Sekunden zu der interaktiven Verzögerung beitragen. Nagle hat einen

weiteren Algorithmus beschrieben, der weniger Verkehr erzeugt und für einige

interaktive Applikationen effektiver ist [Nagle 1984]. Der Algorithmus von Nagle

wird in vielen TCP-Implementierungen eingesetzt. Die meisten TCP-Implementierungen

sind konfigurierbar, sodass die Applikationen den Wert von T ändern

oder zwischen verschiedenen Pufferalgorithmen wählen können.

Auf Grund der Unzuverlässigkeit von Funknetzwerken und dem häufig daraus

resultierenden Paketverlust sind diese Mechanismen zur Flusssteuerung nicht

besonders relevant für die Funkkommunikation. Das ist einer der Gründe für die

Verwendung eines anderen Transportmechanismus in der WAP-Familie der Protokolle

für WAN-Mobilkommunikation. Aber die Implementierung von TCP für

Funknetzwerke ist ebenfalls wichtig und es wurden Änderungen am TCP-Mechanismus

für genau diesen Zweck vorgeschlagen [Balakrishnan et al. 1995, 1996].

Der Gedanke dabei ist, eine TCP-Support-Komponente an der Funkbasisstation

(dem Gateway zwischen verkabeltem und Funknetzwerk) zu implementieren.

Die Support-Komponente hört die TCP-Segmente zum und vom Funknetzwerk

ab und überträgt alle ausgehenden Segmente neu, die nicht relativ schnell vom

mobilen Empfänger bestätigt werden, und fordert eine erneute Übertragung von

ankommenden Segmenten an, wenn Lücken in den Folgenummern festgestellt

werden.

Erneute Übertragung: Der Sender zeichnet die Folgenummern der von ihm gesendeten

Segmente auf. Wenn er eine Bestätigung empfängt, erkennt er, dass die Segmente

erfolgreich empfangen wurden und löscht sie aus seinen Ausgangspuffern.

Wird ein Segment nicht innerhalb eines vorgegebenen Timeouts bestätigt, überträgt

der Sender es erneut.

Puffern: Der Eingangspuffer beim Empfänger soll den Fluss zwischen Sender und

Empfänger ausgleichen. Setzt der empfangende Prozess seine receive-Operationen

langsamer ab als der Sender send-Operationen ausführt, wächst die Datenmenge

im Puffer an. Normalerweise werden die Daten aus dem Puffer geholt, bevor dieser

voll ist, aber irgendwann kann der Puffer überlaufen und wenn das passiert,

werden ankommende Segmente einfach verworfen und der Sender muss sie

erneut übertragen.

Prüfsumme: Jedes Segment enthält eine Prüfsumme, die den Header und die

Daten im Segment abdeckt. Stimmt ein empfangenes Segment nicht mit seiner

Prüfsumme überein, wird das Segment verworfen.

3.4.7 Domainnamen

Der Entwurf und die Implementierung des Domain Name Systems (DNS) sind in

Kapitel 9 detailliert beschrieben; hier wollen wir Ihnen nur einen kurzen Überblick

verschaffen, um unsere Beschreibung der Internet-Protokolle zu vervollständigen.

Das Internet unterstützt ein Schema für die Verwendung symbolischer Namen für

Hosts und Netzwerke wie beispielsweise binkley.cs.mcgill.ca oder essex.ac.uk. Die

Namenseinheiten sind in einer Namenshierarchie angeordnet. Die Namenseinheiten

werden als Domains bezeichnet, die symbolischen Namen als Domainnamen. Domains

sind in einer Hierarchie angeordnet, die ihre organisatorische Struktur reflektieren

soll. Die Namenshierarchie ist völlig unabhängig vom physischen Layout der Netz-


3.4 Internet-Protokolle 137

werke, aus denen sich das Internet zusammensetzt. Domainnamen sind für den Menschen

ganz praktisch, aber sie müssen in IP-Adressen übersetzt werden, damit sie als

IDs für die Kommunikation verwendet werden können. Dies unterliegt der Verantwortlichkeit

eines bestimmten Dienstes: DNS. Applikationsprogramme übergeben

dem DNS Anfragen, um die von den Benutzern angegebenen Domainnamen in Internetadressen

umzuwandeln.

DNS wird als Server-Prozess implementiert, der auf Host-Computern überall im

Internet ausgeführt werden kann. Es gibt mindestens zwei DNS-Server in jeder

Domain, häufig auch mehr. Die Server jeder Domain enthalten eine partielle Abbildung

des Domainnamenbaums unterhalb ihrer Domain. Sie müssen mindestens den

Teil enthalten, der alle Domain- und Host-Namen innerhalb ihrer Domain abdeckt,

aber häufig enthalten sie auch einen größeren Ausschnitt aus dem Baum. DNS-Server

verarbeiten Anfragen für die Übersetzung von Domainnamen außerhalb ihres eigenen

Baumabschnitts, indem sie Anfragen an DNS-Server in den relevanten Domains

absetzen und dabei den Namen in den Segmenten rekursiv von rechts nach links auflösen.

Die resultierende Übersetzung wird auf dem Server, der die ursprüngliche

Anfrage ausgeführt hat, in den Cache gestellt, sodass alle weiteren Anfragen nach der

Auflösung von Namen, die auf dieselbe Domain verweisen, ohne die Hilfe anderer

Server vorgenommen werden können. Ohne ein umfassendes Caching würde DNS

nicht funktionieren, weil in fast jedem Fall die „Wurzel“-Namens-Server befragt werden

müssten, sodass durch diesen Dienstzugriff eine Engstelle entstünde.

3.4.8 Firewalls

Fast alle Unternehmen brauchen einen Internetanschluss, um ihren Kunden und

anderen externen Benutzern Dienste anzubieten oder ihren internen Benutzern zu

ermöglich, auf externe Informationen und Dienste zuzugreifen. In den verschiedenen

Unternehmen werden größtenteils völlig unterschiedliche Computer eingesetzt, die

unterschiedliche Betriebssysteme und unterschiedliche Applikations-Software ausführen.

Die Sicherheit ihrer Software ist noch unterschiedlicher; einige davon verwenden

vielleicht die technisch ausgereiftesten Sicherheitsmechanismen, während

andere wenig oder überhaupt keine Möglichkeit haben, sicherzustellen, dass die eingehende

Kommunikation vertrauenswürdig ist und dass die ausgehende Kommunikation

gegebenenfalls geheim gehalten wird. Insgesamt ist zu sagen, in einem Intranet

mit vielen Computern und unterschiedlichster Software ist es unvermeidbar, dass

einige Systemabschnitte Schwächen aufweisen, die sie empfindlich gegenüber Sicherheitsangriffen

machen. Sicherheitsangriffe sind in Kapitel 7 detailliert beschrieben.

Eine Firewall hat die Aufgabe, die gesamte Kommunikation in und aus einem

Intranet zu überwachen und zu steuern. Eine Firewall wird durch mehrere Prozesse

implementiert, die sich wie eine Pforte für ein Intranet verhalten (Abbildung 3.20(a))

und die vom Unternehmen festgelegte Sicherheitsstrategie durchsetzen.

Die Ziele einer Firewall-Sicherheitsstrategie können unter anderem wie folgt aussehen:

Dienstkontrolle: um festzulegen, welche Dienste auf internen Hosts für den externen

Zugriff zur Verfügung stehen, und alle anderen ankommenden Dienstanfragen

zurückzuweisen. Ausgehende Dienstanfragen und die Antworten darauf

können ebenfalls kontrolliert werden. Diese Filteraktionen können auf dem Inhalt

von IP-Paketen und den darin enthaltenen TCP- und UDP-Anforderungen basiert


138

Kapitel 3 – Netzwerke und Internetworking

Abbildung 3.20

Firewall-Konfigurationen

werden. Beispielsweise können eingehende HTTP-Anforderungen zurückgewiesen

werden, wenn sie nicht an einen offiziellen Webserver-Host gerichtet werden.

Verhaltenskontrolle: um ein Verhalten zu verhindern, das den Strategien des Unternehmens

entgegensteht, das gesellschaftsschädlich ist oder keine erkennbare

Berechtigung hat und damit einen Angriff darstellen könnte. Einige dieser Filteraktionen

können auf IP- oder TCP-Ebene angewendet werden, während andere

Nachrichten möglicherweise auf höherer Ebene interpretiert werden müssen. Beispielsweise

könnte für das Filtern von E-Mail-Angriffen (‚Spams’) die Auswertung

der Senderadresse in den Nachrichten-Headern oder sogar im Nachrichteninhalt

erforderlich sein.

Benutzerkontrolle: Das Unternehmen will möglicherweise zwischen seinen Benutzern

unterscheiden und einigen den Zugriff auf externe Dienste erlauben, anderen

dagegen nicht. Ein Beispiel für eine sozial vielleicht am ehesten akzeptable

Benutzerkontrolle ist, das Herunterladen von Software zu verhindern, außer für

Benutzer, die zur Systemadministration gehören, um sich gegen Viren zu schützen

oder Softwarestandards beizubehalten. Diese Aufgabe wäre schwer zu implementieren,

könnte man normalen Benutzern die Verwendung des Webs nicht

untersagen.

Ein weiteres Beispiel für die Benutzerkontrolle ist die Verwaltung von DFÜund

anderen Verbindungen, die für Benutzer außerhalb des Unternehmens zur

Verfügung stehen. Ist die Firewall gleichzeitig der Host für Modem-Verbindun-


3.4 Internet-Protokolle 139

gen, kann sie die Benutzer beim Verbindungsaufbau authentifizieren und die Verwendung

eines sicheren Kanals für die gesamte Kommunikation fordern (um

Lauschangriffe, Maskeraden und andere Angriffe gegen die externe Verbindung

zu verhindern). Dies ist die Aufgabe der VPN-Technologie (Virtual Private Network),

die im nächsten Abschnitt beschrieben ist.

Die Strategie muss in Hinblick auf Filter-Operationen ausgedrückt werden, die von

Filter-Prozessen auf verschiedenen Ebenen ausgeführt werden:

IP-Paketfilterung: Dies ist ein Prozess, der einzelne IP-Pakete betrachtet. Er kann

Entscheidungen abhängig von der Ziel- und der Quelladresse vornehmen. Außerdem

kann er das Servicetyp-Feld von IP-Paketen auswerten und den Inhalt der

Pakete abhängig von ihrem Typ interpretieren. Beispielsweise könnte er TCP-

Pakete der Port-Nummer entsprechend filtern, an die sie adressiert sind, und weil

sich Dienste im Allgemeinen an bekannten Ports befinden, können Pakete nach

dem angeforderten Dienst gefiltert werden. Beispielsweise verbieten viele Systeme

die Verwendung von NFS-Servern durch externe Clients.

Aus Leistungsgründen wird die IP-Filterung normalerweise durch einen Prozess

im Betriebssystem-Kernel eines Routers vorgenommen. Werden mehrere

Firewalls verwendet, könnte die erste bestimmte Pakete zur genaueren Untersuchung

durch eine nachfolgende Firewall kennzeichnen, während „saubere“

Pakete ungehindert passieren. Es ist möglich, entsprechend der Abfolge von IP-

Paketen zu filtern, um beispielsweise den Zugriff auf einen FTP-Server zu verhindern,

bevor eine Anmeldung stattgefunden hat.

TCP-Gateway: Ein TCP-Gateway-Prozess überprüft alle TCP-Verbindungsanforderungen

und Segmentübertragungen. Bei der Installation eines TCP-Gateway-

Prozesses kann die Einrichtung von TCP-Verbindungen gesteuert und die TCP-

Segmente können auf Korrektheit überprüft werden (manche Denial of Service-

Angriffe verwenden fehlerhaft formatierte TCP-Segmente, um Client-Betriebssysteme

zu stören). Gegebenenfalls können sie auch durch einen Gateway auf Applikationsebene

geleitet werden, um den Inhalt zu überprüfen.

Gateway auf Applikationsebene: Ein Gateway-Prozess auf Applikationsebene agiert

als Proxy für einen Applikations-Prozess. Beispielsweise könnte man eine Strategie

anwenden, die bestimmten internen Benutzern erlaubt, Telnet-Verbindungen

zu bestimmten entfernten Hosts einzurichten. Wenn ein Benutzer ein Telnet-Programm

auf seinem lokalen Computer ausführt, versucht er, eine TCP-Verbindung

mit einem entfernten Host einzurichten. Die Anfrage wird vom TCP-Gateway

aufgefangen. Der TCP-Gateway startet einen Telnet Proxy-Prozess und die

ursprüngliche TCP-Verbindung wird auf ihn umgeleitet. Falls der Proxy die Telnet-Operation

akzeptiert (d.h. der Benutzer besitzt die Berechtigung, den angeforderten

Host zu verwenden), richtet er eine weitere Verbindung zu dem angeforderten

Host ein und leitet dann alle TCP-Pakete in beide Richtungen weiter. Ein

ähnlicher Proxy-Prozess würde für jeden Telnet-Client ausgeführt und ähnliche

Proxies könnten für FTP und andere Dienste verwendet werden.

Eine Firewall setzt sich normalerweise aus mehreren Prozessen zusammen, die auf

unterschiedlichen Protokollebenen arbeiten. Häufig werden aus Gründen der Leistung

und Fehlertoleranz mehrere Computer eingesetzt, um die Aufgaben der Firewall

zu erledigen. In allen nachfolgend beschriebenen und in Abbildung 3.20 gezeig-


140

Kapitel 3 – Netzwerke und Internetworking

ten Konfigurationen zeigen wir einen ungeschützten öffentlichen Web- und FTP-

Server. Er enthält nur veröffentlichte Informationen, die nicht gegen den allgemeinen

Zugriff geschützt werden müssen, und seine Server-Software stellt sicher, dass nur

berechtigte interne Benutzer ihn aktualisieren können.

Die Filterung von IP-Paketen erfolgt normalerweise in einem Router – das ist ein

Computer mit mindestens zwei Netzwerkadressen auf separaten IP-Netzwerken.

Dort werden ein RIP-Prozess, ein IP-Paketfilter-Prozess und so wenig andere Prozesse

wie möglich ausgeführt. Der Router/Filter darf nur vertrauenswürdige Software

ausführen, die ihm ermöglicht, die Filterstrategien zu erzwingen. Dabei muss

auch sichergestellt werden, dass keine Trojanischen Pferde ausgeführt werden können

und dass die Filter- und Routing-Software nicht verändert oder gefälscht werden

kann. Abbildung 3.20(a) zeigt eine einfache Firewall-Konfiguration, die nur auf IP-

Filtern basiert und für diesen Zweck einen einzigen Router einsetzt. Die in Abbildung

3.10 gezeigte Netzwerkkonfiguration enthält zwei Router/Filter, die als Firewalls

dieses Typs agieren. Bei dieser Konfiguration gibt es aus Leistungs- und Zuverlässigkeitsgründen

zwei Router/Filter. Beide unterliegen derselben Filterstrategie

und die zweite Konfiguration erhöht die Sicherheit des Systems nicht.

Wenn TCP- und Gateway-Prozesse auf Applikationsebene erforderlich sind, werden

sie normalerweise auf einem separaten Computer ausgeführt, auch als Bastion

bezeichnet. (Der Begriff stammt aus der Architektur befestigter Schlossanlagen; es

handelt sich dabei um einen emporragenden Aussichtsturm, von dem aus das

Schloss verteidigt werden kann oder von dem aus die Verteidiger überprüfen können,

wer Einlass fordert.) Ein Bastion-Computer ist ein Host, der sich innerhalb des

von einem IP-Routers/Filters geschützten Intranets befindet und den TCP-Gateway

sowie den Gateway auf Applikationsebene ausführt (Abbildung 3.20(b)). Wie der

Router/Filter darf die Bastion nur vertrauenswürdige Software ausführen. In einem

ausreichend gesicherten Intranet müssen Proxies für den Zugriff auf alle außerhalb

liegenden Dienste eingesetzt werden. Die Leser kennen die Verwendung von Proxies

für den Webzugriff vielleicht schon. Dies ist ein Beispiel für die Verwendung von

Firewall-Proxies; häufig werden sie so aufgebaut, dass sie sich in einen Web-Cache-

Server (siehe Kapitel 2) integrieren. Dieser und andere Proxies verbrauchen sehr

wahrscheinlich sehr viele Verarbeitungs- und Speicher-Ressourcen.

Sicherheit kann durch die Anwendung von zwei Routern/Filtern in Serie erhöht

werden, wobei sich die Bastion und alle öffentlichen Server in einem separaten Teilnetz

befinden, das die Router/Filter verbindet (Abbildung 3.20(c)). Diese Konfiguration

weist mehrere Sicherheitsvorteile auf:

õ

õ

Bei einer strengen Bastion-Strategie müssen die IP-Adressen von Hosts im Intranet

der Außenwelt nicht einmal mitgeteilt werden und die Adressen der Außenwelt

müssen den internen Computern nicht bekannt sein, weil die gesamte

externe Kommunikation über Proxy-Prozesse in der Bastion erfolgt, die Zugriff

auf beides besitzt.

Wird der erste Router/Filter durchbrochen oder erfolgreich angegriffen, bleibt

noch der zweite, der von außerhalb des Intranets nicht sichtbar und deshalb weniger

anfällig ist, um unerwünschte IP-Pakete zu erkennen und zurückzuweisen.

VPNs (Virtual Private Networks) VPNs erweitern den Firewall-Schutz über das

lokale Intranet hinaus, indem sie durch Verschlüsselung geschützte sichere Kanäle

auf IP-Ebene einsetzen. In Abschnitt 3.4.4 haben wir die IP-Sicherheitserweiterungen


3.5 Netzwerkfallstudien: Ethernet, Funk-LAN und ATM 141

gezeigt, die mit IPSec-Tunneling in IPv6 und IPv4 zur Verfügung stehen [Thayer

1998]. Sie bilden die Grundlage für die Implementierung von VPNs. Sie können für

einzelne externe Benutzer verwendet werden oder um sichere Verbindungen zwischen

Intranets auf verschiedenen Systemen unter Verwendung öffentlicher Internetverbindungen

zu implementieren.

Beispielsweise könnte es für ein Mitglied des Teams erforderlich sein, über einen

Internet Service Provider eine Verbindung zum Intranet des Unternehmens einzurichten.

Nachdem die Verbindung steht, sollten ihm dieselben Möglichkeiten bereitstehen

wie allen anderen Benutzern innerhalb der Firewall. Das kann realisiert werden,

wenn sein lokaler Host IP-Sicherheit implementiert. Der lokale Host enthält

einen oder mehrere Verschlüsselungsschlüssel, die er und die Firewall kennen und

die verwendet werden, um zum Zeitpunkt der Verbindung einen sicheren Kanal einzurichten.

Weitere Informationen über sichere Kanäle finden Sie in Kapitel 7.

3.5 Netzwerkfallstudien: Ethernet, Funk-LAN und ATM

Bisher haben wir die Theorie beschrieben, die für den Aufbau von Computernetzwerken

angewendet wird, ebenso wie IP, die „virtuelle Netzwerkschicht“ des Internets.

Zum Abschluss des Kapitels beschreiben wir die Grundlagen und Implementierungen

von drei Netzwerken aus der Praxis.

Abbildung 3.21

IEEE 802-Netzwerkstandards

IEEE-Nummer Titel Referenz

802.3 CSMA/CD Networks

(Ethernet)

[IEEE 1985a]

802.4 Token Bus Networks [IEEE 1985b]

802.5 Token Ring Networks [IEEE 1985c]

802.6 Metropolitan Area Networks [IEEE 1994]

802.11 Wireless Local Area

Networks

[IEEE 1999]

Anfang der 80er Jahre richtete das US Institute of Electrical and Electronic Engineers

(IEEEE) ein Komitee ein, das mehrere Standards für LAN spezifizieren sollte (das

802-Komitee [IEEE 1990]); die untergeordneten Komitees haben verschiedene Spezifikationen

produziert, die zum wichtigsten Standard für LANs geworden sind. In den

meisten Fällen basieren die Standards auf bereits vorhandenen Industriestandards,

die sich aus Forschungen in den 70er Jahren entwickelt haben. Abbildung 3.21 zeigt

die relevanten Unterkomitees sowie die Standards, die sie bisher veröffentlicht

haben.

Sie unterscheiden sich in Leistung, Effizienz, Zuverlässigkeit und Kosten, bieten

aber alle Netzwerkfunktionen mit relativ hoher Bandbreite über kurze und mittlere

Distanzen. Der IEEE 802.3 Ethernet-Standard hat die Konkurrenz um den verdrahteten

LAN-Markt größtenteils gewonnen und wir beschreiben ihn in Abschnitt 3.5.1 als


142

Kapitel 3 – Netzwerke und Internetworking

unseren Vertreter für die verdrahtete LAN-Technologie. Obwohl es Ethernet-Implementierungen

für verschiedene Bandbreiten gibt, gelten dieselben Betriebsgrundlagen

für sie.

Der IEEE 802.5 Token Ring-Standard war in den 90er Jahren ein großer Konkurrent

und übertraf das Ethernet in Hinblick auf Effizienz und die Unterstützung von

Bandbreitengarantien, aber heute ist er völlig vom Markt verschwunden. Leser, die

an einer detaillierten Beschreibung dieser interessanten LAN-Technologie interessiert

sind, finden unter www.cdk3.net/networking weitere Informationen.

Der IEEE 802.4 Token Bus-Standard wurde für industrielle Anwendungen mit

Echtzeitanforderungen entwickelt und wird in diesem Bereich heute noch eingesetzt.

Der IEEE 802.6 Metropolitan Area-Standard ist für Distanzen bis zu 50 km geeignet

und für die Verwendung in Netzwerken vorgesehen, die einzelne Städte abdecken.

Eine detailliertere Beschreibung sowie einen Vergleich der vier IEEE-Standards 802.3

bis 802.6 finden Sie in [Tanenbaum 1996].

Der IEEE 802.11 Wireless LAN-Standard hat sich etwas später entwickelt, nimmt

aber heute eine bedeutende Position im Markt ein und wird mit Produkten von

Lucent (WaveLAN) und anderen Anbietern immer wichtiger für die mobilen und

überall eingesetzten programmierbaren Geräte. Der IEEE 802.11-Standard soll Kommunikation

mit Geschwindigkeiten von bis zu elf Mbps über Distanzen von bis zu

150 m zwischen Geräten unterstützen, die mit einfachen Funk-Sendern/Empfängern

ausgestattet sind. Wir beschreiben die Grundlagen für seinen Betrieb in Abschnitt

3.5.2. Weitere Informationen über IEEE 802.11-Netzwerke finden Sie in [Crow et al.

1997] und [Kurose und Ross 2000].

Die ATM-Technologie entwickelte sich aus größeren Forschungs- und Standardisierungsarbeiten

im Bereich der Telekommunikations- und Computerindustrie Ende

der 80er und Anfang der 90er Jahre [CCITT 1990]. Sie soll digitale WAN-Technologie

mit hoher Bandbreite unterstützen, die für Telefonie-, Daten- und Multimedia- (hochqualitatives

Audio und Video) Applikationen geeignet ist. Obwohl sich ATM langsamer

als erwartet durchgesetzt hat, ist es heute die dominante Technologie für Hochgeschwindigkeits-WANs.

In einigen Kreisen wurde es auch schon als Ersatz für

Ethernet in LAN-Applikationen betrachtet, aber in diesem Bereich war es auf Grund

der Konkurrenz der 100 Mbps- und 1.000 Mbps-Ethernets, die es heute schon zu

einem sehr viel niedrigeren Preis gibt, weniger erfolgreich. Wir skizzieren die Grundlagen

für die Arbeit mit ATM in Abschnitt 3.5.3. Weitere Informationen über ATM

und andere Hochgeschwindigkeitsnetzwerk-Technologien finden Sie in [Tanenbaum

1996] und [Stallings 1998a].

3.5.1 Ethernet

Das Ethernet wurde 1973 am Xerox Palo Alto Research Center [Metcalfe und Boggs

1976; Shoch et al. 1982; 1985] als Teil des Forschungsprogramms entwickelt, das dort

für Personal Workstations und verteilte Systeme eingerichtet wurde. Das Pilot-Ethernet

war das erste lokale Hochgeschwindigkeitsnetzwerk, das die Machbarkeit und

den Nutzen schneller lokaler Netzwerke zur Verbindung von Computern innerhalb

eines einzigen Systems demonstrierte, sodass diese mit hohen Übertragungsgeschwindigkeiten

und geringen Fehlerquoten und ohne Switching-Verzögerungen

kommunizieren konnten. Der ursprüngliche Ethernet-Prototyp unterstützte drei

Mbps. Heute gibt es Ethernet-Systeme mit Bandbreiten von zehn Mbps bis 1.000


3.5 Netzwerkfallstudien: Ethernet, Funk-LAN und ATM 143

Mbps. Viele proprietäre Netzwerke wurden unter Verwendung derselben grundlegenden

Methode implementiert, mit Kosten/Leistungs-Eigenschaften, die für die

unterschiedlichsten Anwendungen geeignet sind. Beispielsweise werden auf dem

untersten Kostenniveau dieselben Betriebsgrundlagen verwendet, um billige Mikrocomputer

mit Übertragungsgeschwindigkeiten von 100 bis 200 kbps zu verbinden.

Wir werden die Betriebsgrundlagen des in IEEE-Standard 802.3 beschriebenen 10

Mbps-Ethernets vorstellen [IEEE 1985a]. Dies war die erste allgemein eingesetzte

LAN-Technologie und die vielleicht heute immer noch am weitesten verbreitete,

obwohl für neue Installationen heute die Variante mit 100 Mbps bevorzugt wird. Wir

werden die wichtigsten Variationen der Ethernet-Übertragungs-Technologie und -

Bandbreite beschreiben, die heute angeboten werden. Eine detaillierte Beschreibung

des Ethernets in allen Varianten finden Sie in [Spurgeon 2000].

Ein einziges Ethernet ist eine einfache oder verzweigende busähnliche Verbindung,

die ein Übertragungsmedium verwendet, das aus einem oder mehreren fortlaufenden

Kabelsegmenten besteht, die über Hubs oder Repeater verbunden sind.

Hubs und Repeater sind einfache Geräte, die einzelne Kabelstücke verbinden, sodass

die Signale sie alle durchlaufen können. Mehrere Ethernets können auf der Ebene des

Ethernet-Netzwerk-Protokolls durch Ethernet-Switches oder -Bridges verbunden

werden. Switches und Bridges arbeiten auf der Ebene von Ethernet-Frames und leiten

sie auf benachbarte Ethernets weiter, falls ihr Ziel dort liegt. Verknüpfte Ethernets

erscheinen auf höheren Protokollebenen wie ein einzelnes Netzwerk, beispielsweise

IP (siehe Abbildung 3.10, wo sich die IP-Teilnetze 138.37.88 und 138.37.94 jeweils aus

mehreren Ethernets zusammensetzen, die durch Komponenten verbunden sind, die

als Eswitch markiert sind). Insbesondere das ARP-Protokoll (Abschnitt 3.4.2) ist in der

Lage, IP-Adressen über mehrere verknüpfte Ethernets in Ethernet-Adressen aufzulösen;

jede ARP-Anfrage wird als Broadcast über alle verknüpften Netzwerke eines

Teilnetzes gesendet.

Die Betriebsmethode von Ethernets wird durch CSMA/CD (Carrier Sensing, Multiple

Access with Collision Detection, Vielfachzugriff mit Trägererkennung und Kollisionserkennung)

beschrieben. Sie gehören zur Klasse der Konkurrenz-Bus-Netzwerke.

Konkurrenz-Busse verwenden ein einziges Übertragungsmedium zur Verknüpfung

aller Hosts. Das Protokoll, das den Zugriff auf das Medium verwaltet, wird auch als

MAC-Protokoll (Medium Access Control) bezeichnet. Weil eine einzige Verknüpfung

alle Hosts verbindet, kombiniert das MAC-Protokoll die Funktionen eines Verbindungsschicht-Protokolls

(das für die Übertragung von Paketen auf Kommunikationsverbindungen

verantwortlich ist) und eines Netzwerkschicht-Protokolls (das für die

Auslieferung von Paketen an Hosts verantwortlich ist) in einer einzigen Protokollschicht.

Paket-Broadcasting Die Kommunikation in CSMA/CD-Netzwerken erfolgt

über Broadcasts von Datenpaketen auf dem Übertragungsmedium. Alle Stationen

hören ständig das Medium auf Pakete ab, die an sie adressiert sind. Eine Station, die

eine Nachricht übertragen will, sendet ein oder mehr Pakete (in der Ethernet-Spezifikation

als Frames bezeichnet) als Broadcast auf dem Medium. Jedes Paket enthält die

Adresse der Zielstation, die Adresse der sendenden Station sowie eine variabel lange

Bitfolge, die die zu übertragende Nachricht darstellt. Die Datenübertragung erfolgt

mit zehn Mbps (oder mit den höheren Geschwindigkeiten, die für 100 und 1.000

Mbps-Ethernets spezifiziert sind) und die Pakete können eine Länge zwischen 64 und

1.518 Bytes haben, die Übertragungszeit für ein Paket auf einem 10 Mbps-Ethernet

beträgt also 50 bis 1.200 Mikrosekunden, abhängig von seiner Länge. Die MTU ist im


144

Kapitel 3 – Netzwerke und Internetworking

IEEE-Standard mit 1.518 Bytes festgelegt, obwohl es keine technische Begründung für

eine begrenzte Länge gibt, außer der Notwendigkeit, durch Überlast verursachte Verzögerungen

zu vermeiden.

Die Adresse der Zielstation verweist normalerweise auf eine einzelne Netzwerkschnittstelle.

Die Controller-Hardware auf jeder Station erhält eine Kopie eines jeden

Pakets. Sie vergleicht die Zieladresse in jedem Paket mit einer fest verdrahteten lokalen

Adresse, wobei Pakete ignoriert werden, die an andere Stationen adressiert sind,

und Pakete mit einer übereinstimmenden Adresse an den lokalen Host weitergegeben

werden. Die Zieladresse kann auch eine Broadcast- oder Multicast-Adresse angeben.

Normale Adressen werden nach ihrem höchsten Bit (0 bzw. 1) zwischen Broadcast-

und Multicast-Adressen unterschieden. Eine Adresse, die ausschließlich aus

Einsen besteht, ist für die Verwendung als Broadcast-Adresse reserviert; sie wird verwendet,

wenn eine Nachricht von allen Stationen im Netzwerk empfangen werden

soll. Dies wird beispielsweise für die Implementierung des ARP IP-Adressauflösungs-Protokolls

verwendet. Jede Station, die ein Paket mit einer Broadcast-Adresse

empfängt, gibt dieses an ihren lokalen Host weiter. Eine Multicast-Adresse stellt eine

beschränkte Form des Broadcasts dar, die von einer Gruppe von Stationen empfangen

wird, deren Netzwerkschnittstellen so konfiguriert sind, dass sie Pakete mit dieser

Multicast-Adresse entgegennehmen. Nicht alle Implementierungen von Ethernet-

Netzwerkschnittstellen erkennen Multicast-Adressen.

Das Ethernet-Netzwerk-Protokoll (das für die Übertragung von Ethernet-Paketen

zwischen Hosts vorgesehen ist) ist in der Ethernet-Hardwareschnittstelle implementiert;

für die Transportschicht und die darüber liegenden Schichten ist Protokoll-Software

erforderlich.

Layout von Ethernet-Paketen Die Pakete (genauer gesagt, die Frames), die von

Stationen im Ethernet übertragen werden, haben das folgende Layout:

Bytes: 7 1 6 6 2 46 ≤ Länge ≤

1500

4

Präambel S Zieladresse Quelladresse

Länge der

Daten

Daten für die

Übertragung

Prüfsumme

Neben den bereits erwähnten Ziel- und Quelladressen beinhalten Frames ein feststehendes,

acht Byte großes Präfix, ein Feld für die Länge, ein Feld für die Daten sowie

eine Prüfsumme. Das Präfix wird für Hardware-Timing-Zwecke verwendet und

besteht aus einer Präambel mit sieben Bytes, die je das Bitmuster 10101010 gefolgt

von einem ein Byte großen Start-Frame-Kennzeichner (in der Abbildung ist das S)

mit dem Bitmuster 10101011 enthält.

Obwohl die Spezifikation nicht mehr als 1.024 Stationen auf einem einzelnen

Ethernet erlaubt, belegen Adressen sechs Bytes, sodass 2 48 unterschiedliche Adressen

möglich sind. Aus diesem Grund kann jeder Ethernet-Hardwareschnittstelle von

ihrem Hersteller eine eindeutige Adresse zugewiesen werden, wodurch sichergestellt

ist, dass alle Stationen in jeder Kombination aus beliebigen Ethernets eindeutige

Adressen haben. Das US Institute of Electrical and Electronic Engineers (IEEE) ist die

zuständige Stelle für Ethernet-Adressen und erteilt den Herstellern von Ethernet-

Hardwareschnittstellen jeweils separate Bereiche von 48-Bit-Adressen.


3.5 Netzwerkfallstudien: Ethernet, Funk-LAN und ATM 145

Das Datenfeld enthält die gesamte oder einen Teil (falls die Nachricht länger als 1.500

Bytes ist) der zu übertragenden Nachricht. Die Untergrenze von 46 Bytes im Datenfeld

stellt eine Mindestpaketlänge von 64 Bytes sicher, die erforderlich ist, damit alle

Stationen im Netzwerk Kollisionen erkennen, wie nachfolgend erklärt.

Die Frame-Prüffolge ist eine Prüfsumme, die vom Sender erzeugt und eingefügt

wird, und mit deren Hilfe Pakete vom Empfänger überprüft werden. Pakete mit fehlerhaften

Prüfsummen werden von der Verbindungsschicht der empfangenden Station

einfach verworfen. Dies ist ein weiteres Beispiel für die Anwendung des Endezu-Ende-Arguments:

um die Übertragung einer Nachricht zu garantieren, muss ein

Transportschicht-Protokoll wie beispielsweise TCP, bei dem jedes Paket bestätigt

wird und alle nicht bestätigten Pakete erneut übertragen werden, verwendet werden.

Die Wahrscheinlichkeit von Datendefekten in lokalen Netzwerken ist so gering, dass

diese Methode für die Wiederherstellung, falls eine garantierte Auslieferung erforderlich

ist, vollkommen ausreichend ist. Sie erlaubt die Verwendung eines weniger

aufwändigen Transport-Protokolls wie beispielsweise UDP, wenn keine Auslieferungsgarantie

erforderlich ist.

Paketkollisionen Selbst in der relativ kurzen Zeit, die es dauert, Pakete zu übertragen,

besteht die Wahrscheinlichkeit, dass zwei Stationen im Netzwerk gleichzeitig

versuchen, Nachrichten zu übertragen. Versucht eine Station, ein Paket zu übertragen,

ohne zuvor zu überprüfen, ob das Medium von anderen Stationen benutzt wird,

kann eine Kollision auftreten.

Das Ethernet verfügt über drei Mechanismen, um mit dieser Wahrscheinlichkeit

zurechtzukommen. Die erste wird auch als Carrier Sensing (Trägererkennung)

bezeichnet; die Schnittstellen-Hardware in jeder Station hört das Medium auf das

Vorhandensein eines Signals (in Analogie zur Radioübertragung auch als Carrier

bezeichnet) ab. Will eine Station ein Paket übertragen, wartet sie, bis im Medium kein

Signal mehr vorhanden ist und beginnt mit der Übertragung.

Leider verhindert die Trägererkennung nicht alle Kollisionen. Die Wahrscheinlichkeit

der Kollision bleibt bestehen auf Grund der endlichen Zeit _, die ein Signal, das

an irgendeiner Stelle in das Medium eingespeist wird (und das mit elektronischer

Geschwindigkeit reist: etwa 2 x 10 8 m/s), benötigt, um alle anderen Punkte zu erreichen.

Betrachten Sie zwei Stationen A und B, die Pakete fast gleichzeitig übertragen

wollen. A beginnt mit der Übertragung. B überprüft das Medium und stellt zu einer

Zeit t < _ nach dem Beginn der Übertragung durch A fest, dass kein Signal im

Medium vorliegt. B beginnt also ebenfalls zu senden und stört damit die Übertragung

von A. Die Pakete von A und die von B werden durch die Störung beschädigt.

Die Technik für die Wiederherstellung nach einer solchen Störung wird auch als

Kollisionserkennung bezeichnet. Immer wenn eine Station ein Paket über ihren Hardware-Ausgabeport

überträgt, hört sie gleichzeitig ihren Eingabeport ab und die beiden

Signale werden verglichen. Unterscheiden sie sich, ist eine Kollision aufgetreten.

Wenn dies passiert, beendet die Station die Übertragung und erzeugt ein Störungssignal,

um sicherzustellen, dass alle Stationen die Kollision erkennen. Wie wir bereits

angemerkt haben, ist eine Mindestpaketlänge erforderlich, um sicherzustellen, dass

Kollisionen immer erkannt werden. Übertragen zwei Stationen fast gleichzeitig von

entgegengesetzten Enden des Netzwerks, erkennen sie die Kollision 2_ Sekunden

lang nicht (weil der erste Sender immer noch überträgt, wenn er das zweite Signal

empfängt). Benötigen die übertragenen Pakete weniger als _ für den Broadcast, wird

die Kollision nicht erkannt, weil jede sendende Station das andere Paket erst sieht,

wenn sie mit der Übertragung ihres eigenen Pakets fertig ist, während Stationen auf


146

Kapitel 3 – Netzwerke und Internetworking

dazwischen liegenden Punkten beide Pakete gleichzeitig empfangen, was zu einer

Beschädigung der Daten führt.

Nach dem Störungssignal verwerfen alle übertragenden und empfangenden Stationen

ihr aktuelles Paket. Die übertragenden Stationen müssen dann versuchen, ihre

Pakete wiederholt zu übertragen. Jetzt kommt eine weitere Schwierigkeit ins Spiel.

Wenn alle an der Kollision beteiligten Stationen versuchen, ihre Pakete unmittelbar

nach der Übermittlung des Störsignals erneut zu übertragen, entsteht sehr wahrscheinlich

die nächste Kollision. Um dies zu vermeiden, wird das so genannte Back-

Off verwendet. Jede der an einer Kollision beteiligten Stationen wartet eine Zeit n_,

bevor sie das Paket erneut überträgt. Der Wert von n ist eine ganzzahlige Zufallszahl

und wird auf jeder Station separat festgelegt und durch eine Konstante L begrenzt,

die in der Netzwerk-Software definiert ist. Tritt eine weitere Kollision auf, wird der

Wert von L verdoppelt und der Prozess gegebenenfalls bis zu zehnmal wiederholt.

Schließlich berechnet die Schnittstellen-Hardware der empfangenden Station die

Prüffolge und vergleicht sie mit der im Paket übertragenen Prüfsumme. Unter Verwendung

all dieser Techniken können die an das Ethernet angeschlossenen Stationen

die Nutzung des Mediums verwalten, ohne dass eine zentrale Steuerung oder Synchronisierung

erforderlich ist.

Ethernet-Effizienz Die Effizienz eines Ethernets entspricht dem Verhältnis der

Anzahl erfolgreich übertragener Pakete zu der theoretisch maximalen Anzahl der

Pakete, die ohne Kollisionen übertragen werden können. Sie wird durch den Wert

von _ beeinflusst, weil das Intervall von 2_ Sekunden nach dem Start der Paketübertragung

das „Gelegenheitsfenster“ für Kollisionen darstellt – keine Kollision kann

später als 2_ Sekunden auftreten, nachdem die Übertragung des Pakets begonnen

hat. Außerdem wird sie durch die Anzahl der Stationen im Netzwerk und ihren Aktivitätsgrad

beeinflusst.

Für ein Kabel von 1 km beträgt der Wert von _ weniger als fünf Mikrosekunden

und die Kollisionswahrscheinlichkeit ist klein genug, um höchste Effizienz zu garantieren.

Das Ethernet kann eine Kanalauslastung zwischen 80 und 95% erzielen,

obwohl beim Überschreiten einer Auslastung von 50% bereits Verzögerungen

erkennbar werden. Weil die Last variabel ist, kann die Auslieferung einer Nachricht

innerhalb einer festen Zeit nicht garantiert werden, da das Netzwerk möglicherweise

voll ausgelastet ist, wenn die Nachricht zur Übertragung ansteht. Die Wahrscheinlichkeit,

dass die Nachricht mit einer bestimmten Verzögerung übertragen wird, ist so gut

wie bzw. besser als in anderen Netzwerk-Technologien.

Empirische Messungen der Leistung eines Ethernets im Xerox PARC, die von

Shoch und Hupp [1980] aufgezeichnet wurden, bestätigen diese Analyse. In der Praxis

variiert die Auslastung von in verteilten Systemen eingesetzten Ethernets ganz

wesentlich. Viele Netzwerke werden hauptsächlich für asynchrone Client-/Server-

Client-/Server-Interaktionen eingesetzt, die größtenteils ohne Stationen arbeiten, die

auf eine Möglichkeit zum Senden warten, sodass eine Kanalauslastung von annähernd

1 vorliegt. Netzwerke, die vielen Benutzern Zugriff auf eine große Datenmenge

bereitstellen müssen, sind stärker ausgelastet, und Netzwerke, die Multimedia-Streams

übertragen, sind wahrscheinlich überlastet, wenn mehrere Streams

gleichzeitig übertragen werden sollen.

Physische Implementierungen Die obige Beschreibung definiert das MAC-

Schicht-Protokoll für alle Ethernets. Die allgemeine Akzeptanz in einem großen

Marktsegment hat dazu geführt, dass es bereits sehr billige Controller-Hardware gibt,


3.5 Netzwerkfallstudien: Ethernet, Funk-LAN und ATM 147

die die Algorithmen für die Implementierung unterstützt, und die in vielen Computern

bereits als Standard eingebaut ist.

Zahlreiche physische Ethernet-Implementierungen basieren darauf, unterschiedliche

Abwägungen zwischen Leistung und Kosten anzubieten und die erhöhte Hardware-Leistung

auszunutzen. Die Variationen entstehen aus der Verwendung unterschiedlicher

Übertragungsmedien – Koaxialkabel, verdrillter Kupferdraht (ähnlich

der Telefonverkabelung) und Fiberglas – mit unterschiedlichen Grenzen für den

Übertragungsbereich, ebenso wie aus der Verwendung höherer Signalgeschwindigkeiten,

wodurch eine größere Systembandbreite und allgemein kürzere Übertragungsbereiche

entstehen. Die IEEE hat mehrere Standards für physische Implementierungen

übernommen und es gibt ein Namensschema für ihre Kennzeichnung. Es

werden Namen wie beispielsweise 10Base5 oder 100BaseT verwendet. Sie haben die

folgende Form:

Dabei ist: R = Datengeschwindigkeit in Mbps

B = Mediensignaltyp (Basisband oder Breitband)

L = maximale Segmentlänge in m/100, oder T

(Twisted Pair Cable Hierarchy)

Die nachfolgende Tabelle zeigt die Bandbreite und die maximale Reichweite verschiedener

momentan angebotener Standardkonfigurationen und Kabeltypen:

10Base5 10BaseT 100BaseT 1000BaseT

Datengeschwindigkeit 10 Mbps 10 Mbps 100 Mbps 1.000 Mbps

Max. Segmentlängen:

Verdrilltes Kabel (UTP) 100 m 100 m 100 m 25 m

Koaxialkabel (STP) 500 m 500 m 500 m 25 m

Multimode-Fiberglas 2.000 m 2.000 m 500 m 500 m

Monomode-Fiberglas 25.000 m 25.000 m 20.000 m 2.000 m

Konfigurationen, die mit der Bezeichnung T enden, sind mit UTP-Verkabelung implementiert

– nicht geschirmtem verdrilltem Kabel (Telefonkabel). Sie sind in einer

Hierarchie von Hubs angeordnet, wobei an den Blättern des Baumes Computer platziert

sind. In diesem Fall sind die in unserer Tabelle angegebenen Segmentlängen

möglicherweise die doppelte erlaubte Distanz von einem Computer zu einem Hub.

3.5.2 IEEE 802.11 Funk-LAN

In diesem Abschnitt bieten wir einen Überblick über die speziellen Eigenschaften von

Funknetzwerken, die von einer Funk-LAN-Technologie abgedeckt werden müssen,

und erklären, wie IEEE 802.11 sie realisiert. Der IEEE 802.11-Standard erweitert das in

der Ethernet-Technologie (IEEE 802.3) verwendete CSMA-Prinzip, um die Eigenschaften

der Funkkommunikation zu unterstützen. Der 802.11-Standard soll die

Kommunikation zwischen Computern in Abständen von bis zu 150 Metern und mit

Geschwindigkeiten von bis zu elf Mbps unterstützen.


148

Kapitel 3 – Netzwerke und Internetworking

Abbildung 3.22 zeigt einen Teil eines Intranets, in dem ein Funk-LAN eingesetzt

wird. Mehrere mobile Funkgeräte kommunizieren mit dem restlichen Intranet über

eine Basisstation, die einen Zugriffspunkt für das verdrahtete LAN darstellt. Ein Funknetzwerk,

das die Welt über einen Zugriffspunkt mit einem konventionellen LAN

verbindet, wird auch als Infrastruktur-Netzwerk bezeichnet.

Eine alternative Konfiguration für Funknetzwerke wird auch als Ad-hoc-Netzwerk

bezeichnet. Ad-hoc-Netzwerke beinhalten keinen Zugriffspunkt und keine Basisstation.

Sie werden „dynamisch“ aufgebaut, wenn sich zwei oder mehr mobile Geräte

mit Funkschnittstellen in derselben Umgebung erkennen. Ein Ad-hoc-Netzwerk

könnte beispielsweise eingerichtet werden, wenn zwei oder mehr Laptop-Benutzer in

einem Zimmer eine Verbindung zu irgendeiner verfügbaren Station einrichten wollen.

Anschließend könnten sie Dateien gemeinsam nutzen, indem sie einen Datei-Server-Prozess

auf einer der Maschinen starten.

Die Stationen in IEEE 802.11-Netzwerken verwenden Funkfrequenzsignale (im 2,4

GHz-Band) oder Infrarotsignale als Übertragungsmedium. Die Funkversion des

Standards hat höchste kommerzielle Aufmerksamkeit erzielt, was wir noch beschreiben

werden. Sie verwendet verschiedene Techniken zur Frequenzauswahl und zum

Frequenzwechsel, um externe und wechselseitige Störungen zwischen unabhängigen

Funk-LANs zu vermeiden, die wir hier nicht genauer beschreiben wollen. Stattdessen

konzentrieren wir uns auf die CSMA/CD-Mechanismen, die eine Broadcast-Übertragung

ermöglichen, die für die Funkübertragung benötigt wird.

Wie Ethernet bietet auch das 802.11 MAC-Protokoll allen Stationen dieselbe

Chance, den Übertragungskanal zu nutzen, und jede Station kann direkt zu einer

beliebigen anderen übertragen. Ein MAC-Protokoll steuert die Verwendung des

Kanals durch die verschiedenen Stationen. Wie beim Ethernet führt auch die MAC-

Schicht die Funktionen sowohl auf der Verbindungsschicht als auch auf der Netzwerkschicht

aus, um Datenpakete auf die Hosts eines Netzwerks zu übertragen.

Abbildung 3.22

Funk-LAN-Konfiguration


3.5 Netzwerkfallstudien: Ethernet, Funk-LAN und ATM 149

Auf Grund der Verwendung von Funkwellen anstelle von Kabeln als Übertragungsmedium

entstehen verschiedene Probleme. Diese Probleme resultieren aus der Tatsache,

dass die in Ethernets verwendeten Trägererkennungs- und Kollisionserkennungs-Mechanismen

nur dann wirksam sind, wenn die Stärke der Signale im

gesamten Netzwerk etwa gleich ist.

Die Trägererkennung hat die Aufgabe, festzustellen, ob das Medium an allen

Punkten zwischen der sendenden und der empfangenden Station frei ist. Die Kollisionserkennung

hat die Aufgabe, zu erkennen, ob das Medium in der Umgebung des

Empfängers frei von Störungen während der Übertragung ist. Weil die Signalstärke

nicht in dem gesamten von einem Funk-LAN abgedeckten Bereich gleich ist, können

die Trägererkennung und die Kollisionserkennung wie folgt fehlschlagen:

Verborgene Stationen: Möglicherweise übersieht die Trägererkennung, dass eine

andere Station im Netzwerk gerade überträgt. Ein Beispiel dafür sehen Sie in

Abbildung 3.22. Wenn Palmtop D zur Basisstation E überträgt, erkennt Laptop A

das Signal von D auf Grund der gezeigten Funkstörung möglicherweise nicht. A

könnte eine Übertragung beginnen und eine Kollision auf E verursachen, es sei

denn, es werden Maßnahmen ergriffen, die dies verhindern könnten.

Abschwächung: Auf Grund des Gesetzes des inversen Quadrats für die Fortpflanzung

elektromagnetischer Wellen nimmt die Stärke von Funksignalen mit der

Distanz zum Überträger rapide ab. Stationen mit einem Funk-LAN liegen möglicherweise

außerhalb der Reichweite anderer Stationen desselben LAN. In

Abbildung 3.22 ist Laptop A möglicherweise nicht in der Lage, eine Übertragung

von C zu erkennen, obwohl jeder von beiden erfolgreich an B oder E übertragen

kann. Die Abschwächung verhindert Trägererkennung und Kollisionserkennung.

Kollisionsmaskierung: Leider ist die im Ethernet verwendete „Abhör“-Technik zur

Erkennung von Kollisionen in Funknetzwerken nicht besonders wirksam. Auf

Grund des Gesetzes des inversen Quadrats, das bereits oben angesprochen

wurde, sind die lokal erzeugten Signale immer sehr viel stärker als jedes Signal,

das an beliebiger anderer Stelle erzeugt wurde, sodass die externe Übertragung

letztlich übertönt wird. Die Laptops A und C könnten also gleichzeitig an E übertragen.

Keiner würde diese Kollision erkennen, aber E würde nur Datenmüll

erhalten.

Trotz ihrer Fehlbarkeit wird in IEEE 802.11-Netzwerken nicht auf die Trägererkennung

verzichtet; sie wird durch die Einführung eines Slot-Reservierungs-Mechanismus

im MAC-Protokoll verstärkt. Das resultierende Schema wird auch als CSMA/

CA (Carrier Sensing Multiple Access with Collision Avoidance, Vielfachzugriff mit Trägererkennung

und Kollisionsvermeidung) bezeichnet.

Wenn eine Station bereit zur Übertragung ist, hört sie das Medium ab. Erkennt sie

kein Trägersignal, geht sie davon aus, dass eine der folgenden Bedingungen zutrifft:

1. das Medium ist verfügbar;

2. eine außerhalb der Reichweite liegende Station fordert gerade einen Slot an;

3. eine außerhalb der Reichweite liegende Station verwendet einen Slot, den sie

zuvor reserviert hat.


150

Kapitel 3 – Netzwerke und Internetworking

Das Slot-Reservierungs-Protokoll beinhaltet den Austausch von zwei kurzen Nachrichten

(Frames) zwischen dem Sender und dem Empfänger. Die erste ist ein RTS-

Frame (Request to Send) vom Sender zum Empfänger. Die RTS-Nachricht gibt eine

Dauer für den angeforderten Slot an. Der Empfänger reagiert mit einem CTS-Frame

(Clear to Send) und wiederholt darin die Dauer des Slots. Dieser Austausch hat die

folgende Wirkung:

õ Stationen innerhalb der Reichweite des Senders nehmen den RTS-Frame auf und

berücksichtigen seine Dauer.

õ Stationen innerhalb der Reichweite des Empfängers nehmen den CTS-Frame auf

und berücksichtigen seine Dauer.

Alle Stationen innerhalb der Reichweite von Sender und Empfänger senden für die

Dauer des angeforderten Slots nicht, sodass der Kanal für den Sender frei ist, einen

Frame der gewünschten Länge zu übertragen. Der erfolgreiche Empfang des Daten-

Frames wird durch den Empfänger bestätigt, um das Problem externer Störungen für

den Kanal zu kompensieren. Die Slot-Reservierungs-Funktion des MAC-Protokolls

hilft, Kollisionen wie folgt zu vermeiden:

õ Die CTS-Frames helfen, verborgene Stationen und Abschwächungsprobleme zu

vermeiden.

õ Die RTS- und CTS-Frames sind kurz, sodass das Risiko von Kollisionen mit ihnen

relativ gering ist. Wird eine Kollision erkannt oder führt ein RTS nicht zu einem

CTS, wird ein zufälliges Back-Off-Intervall verwendet, wie für Ethernet bereits

beschrieben.

õ Wurden die RTS- und CTS-Frames korrekt ausgetauscht, sollte es keine Kollisionen

mehr für die nachfolgenden Daten- und Bestätigungs-Frames geben, es sei

denn, eine vorübergehende Abschwächung hat den Empfang verhindert.

Sicherheit Die Geheimhaltung und Integrität der Kommunikation ist ein offensichtliches

Ziel für Funknetzwerke. Jede Station, die innerhalb der Reichweite liegt

und mit einem Empfänger/Überträger ausgestattet ist, könnte versuchen, einem

Netzwerk beizutreten oder aber Übertragungen zwischen anderen Stationen zu

belauschen. Der IEEE 802.11-Standard berücksichtigt diese Probleme. Für jede Station,

die dem Netzwerk beitreten will, muss eine Authentifizierung stattfinden,

wobei die Kenntnis eines gemeinsam genutzten Schlüssels bewiesen werden muss.

Dies basiert auf einem Authentifizierungsmechanismus mit gemeinsam genutztem

Schlüssel, ähnlich den in Kapitel 7 beschriebenen. Dieser Schlüssel ist wirksam, Stationen,

die keinen Zugriff auf den gemeinsam genutzten Schlüssel haben, am Zutritt

zu dem Netzwerk zu hindern.

Lauschangriffe werden mithilfe eines einfachen Verschlüsselungsschemas verhindert.

Es maskiert den Inhalt übertragener Daten-Stream-Streams durch eine bitweise

XOR-Verknüpfung mit einer beliebigen Folge von Zufallszahlen. Die Folge beginnt

bei einem gemeinsam genutzten Schlüssel und kann von jeder Station, die den

Schlüssel kennt, reproduziert und zur Auswertung der ursprünglichen Daten verwendet

werden. Dies ist ein Beispiel für die Stream-Verschlüsselungstechnik, die in

Abschnitt 7.3 beschrieben wird.


3.5 Netzwerkfallstudien: Ethernet, Funk-LAN und ATM 151

3.5.3 ATM-Netzwerke (Asynchronous Transfer Mode)

ATM wurde entwickelt, um die verschiedensten Daten zu transportieren wie beispielsweise

auch Multimedia-Daten wie Voice und Video. Es handelt sich dabei um

ein schnelles paketvermitteltes Netzwerk, das auf einer Methode zur Paketweitergabe

basiert, die auch als Cell Relay bezeichnet wird, und die sehr viel schneller arbeitet

als die konventionelle Paketvermittlung. Sie erreicht ihre Geschwindigkeit durch

das Vermeiden einer Flusssteuerung und Fehlerüberprüfung auf den Zwischenknoten

der Übertragung. Die Übertragungsverbindungen und -knoten müssen deshalb

eine geringe Wahrscheinlichkeit defekter Daten aufweisen. Ein weiterer Faktor, der

die Leistung beeinflusst, ist die Übertragung kleiner Dateneinheiten fester Länge,

wodurch die Puffergröße und die Komplexität ebenso wie die Warteschlangenverzögerungen

in Zwischenknoten reduziert wird. ATM arbeitet in einem verbindungsorientierten

Modus, aber eine Verbindung kann nur dann eingerichtet werden, wenn

ausreichend viele Ressourcen zur Verfügung stehen. Nachdem eine Verbindung eingerichtet

wurde, ist seine Qualität (d.h. seine Bandbreiten- und Latenzeigenschaften)

garantiert.

ATM ist eine datenvermittelte Technologie, die über existierende digitale Telefonnetze

implementiert wird, die ohnehin synchron waren. Wird ATM auf ein Netzwerk

synchroner digitaler Hochgeschwindigkeitsnetzwerke aufgesetzt wie beispielsweise

die für das SONET (Synchronous Optical Network) spezifizierten Omidyar und

Aldridge [1993], erzeugt es ein sehr viel flexibleres digitales Hochgeschwindigkeits-

Paketnetzwerk mit vielen virtuellen Verbindungen. Jede virtuelle ATM-Verbindung

garantiert Bandbreite und Latenz. Die resultierenden virtuellen Schaltungen können

genutzt werden, um umfassendere Dienste mit variablen Geschwindigkeiten zu

unterstützen. Unter anderem umfassen diese Voice (32 kbps), Fax, verteilte Systemdienste,

Video und High-Definition-TV (100 bis 150 Mbps). Der ATM-Standard

[CCITT 1990] empfiehlt die Bereitstellung virtueller Schaltungen mit Datenübertragungsgeschwindigkeiten

von bis zu 155 Mbps oder 622 Mbps.

ATM-Netzwerke können auch im nativen Modus direkt über Fiberglas, Kupfer und

andere Übertragungsmedien implementiert werden, wobei mit der aktuellen Fiberglas-Technologie

Bandbreiten von mehreren Gigabit pro Sekunde möglich sind. Dies

ist der Modus, in dem sie in lokalen und Nahverkehrsnetzwerken eingesetzt werden.

Der ATM-Dienst ist in drei Schichten angeordnet, die in durch die dunkleren Felder

dargestellt sind. Die ATM-Adaptionsschicht ist eine Ende-zu-Ende-Schicht, die nur

auf dem sendenden und dem empfangenden Host implementiert ist. Sie soll existierende

Protokolle auf höherer Ebene unterstützen wie beispielsweise TCP/IP oder

X25. Unterschiedliche Versionen der Adaptionsschicht können die verschiedensten

Adaptionsfunktionen bereitstellen, um die Anforderungen unterschiedlicher Protokolle

höherer Ebene abzudecken. Sie beinhalten einige allgemeine Funktionen, beispielsweise

das Zerlegen und Zusammensetzen von Paketen für die Verwendung in

speziellen Protokollen höherer Ebene.

Die ATM-Schicht stellt einen verbindungsorientierten Dienst bereit, der Pakete fester

Länge überträgt, so genannte Zellen. Eine Verbindung besteht aus mehreren virtuellen

Kanälen innerhalb virtueller Pfade. Ein virtueller Kanal (VC, Virtual Channel) ist

eine logische, unidirektionale Zuordnung zwischen zwei Endpunkten einer Verknüpfung

im physischen Pfad von der Quelle zum Ziel. Ein virtueller Pfad (VP) setzt sich

aus mehreren virtuellen Kanälen zusammen, die einem physischen Pfad zwischen

zwei Switching-Knoten zugeordnet sind. Virtuelle Pfade sollen zur Unterstützung


152

Kapitel 3 – Netzwerke und Internetworking

Abbildung 3.23

ATM-Protokollschichten

semi-permanenter Verbindungen zwischen Endpunktpaaren verwendet werden. Virtuelle

Kanäle werden bei der Einrichtung von Verbindungen dynamisch zugeordnet.

Die Knoten in einem ATM-Netzwerk können drei verschiedene Rollen übernehmen:

õ

õ

õ

Hosts, die Nachrichten senden und empfangen

VP-Switches, die Tabellen enthalten, die die Entsprechung zwischen ankommenden

und ausgehenden virtuellen Pfaden anzeigen

VP/VC-Switches, die ähnliche Tabellen für virtuelle Pfade und virtuelle Kanäle

enthalten

Eine ATM-Zelle hat einen 5-Byte-Header und ein 48-Byte-Datenfeld (Abbildung

3.24). Es wird immer das ganze Datenfeld gesendet, auch wenn es nur zum Teil mit

Daten gefüllt ist. Der Header enthält eine ID für einen virtuellen Kanal sowie eine ID

für einen virtuellen Pfad, die in ihrer Kombination die Information bereitstellen, die

benötigt wird, um die Zelle durch das Netzwerk zu leiten. Die ID für den virtuellen

Pfad verweist auf einen bestimmten virtuellen Pfad auf der physischen Verknüpfung,

auf der die Zellen übertragen werden. Die ID für den virtuellen Kanal verweist auf

einen speziellen virtuellen Kanal innerhalb des virtuellen Pfads. Andere Header-Felder

werden verwendet, um den Typ der Zelle, ihre Priorität sowie ihre Grenze anzugeben.

Kommt eine Zelle an einem VP-Switch an, wird in seiner Routing-Tabelle die ID

für den virtuellen Pfad im Header nachgeschlagen, um die entsprechende ID des virtuellen

Pfades für den ausgehenden physischen Pfad zu ermitteln (Abbildung 3.25).

Er trägt die neue ID für den virtuellen Pfad in den Header ein und überträgt die Zelle

dann über den ausgehenden physischen Pfad. Ein VP/VC-Switch kann basierend auf

VP- und VC-IDs ein ähnliches Routing vornehmen.

Beachten Sie, dass die VP- und VC-IDs lokal definiert sind. Dieses Schema hat den

Vorteil, dass keine globalen, netzwerkübergreifenden IDs erforderlich sind, was sehr


3.5 Netzwerkfallstudien: Ethernet, Funk-LAN und ATM 153

Abbildung 3.24

Layout einer ATM-Zelle

große Zahlen sein müssten. Ein globales Adressierungsschema würde administrative

Overheads verursachen und die Zellen-Header und die Tabellen in den Switches

müssten mehr Informationen enthalten.

Abbildung 3.25

Virtuelle Pfade in einem ATM-Netzwerk

ATM bietet einen Dienst mit geringer Latenz – die Switching-Verzögerung liegt bei

etwa 25 Mikrosekunden pro Switch, wodurch beispielsweise eine Latenz von 250

Mikrosekunden auftritt, wenn eine Nachricht zehn Switches durchläuft. Das entspricht

sehr gut unseren geschätzten Leistungsanforderungen für verteilte Systeme

(Abschnitt 3.2), d.h. ein ATM-Netzwerk unterstützt eine Prozesskommunikation

sowie Client-/Server-Client-/Server-Interaktionen mit einer Leistung, die der von

LANs gebotenen Leistung vergleichbar und zum Teil sogar besser als diese ist.

Kanäle mit höchster Bandbreite und garantierter Dienstgüte, die für die Übertragung

von Multimedia-Daten-Stream-Streams mit Geschwindigkeiten von bis zu 600 Mbps

geeignet sind, sind ebenfalls möglich. In reinen ATM-Netzwerken können Gigabits

pro Sekunde erreicht werden.


154

Kapitel 3 – Netzwerke und Internetworking

3.6 Zusammenfassung

In diesem Kapitel haben wir uns auf Netzwerkkonzepte und -techniken konzentriert,

die die Grundlage verteilter Systeme darstellen, und sie dabei aus der Perspektive

des Systementwicklers betrachtet. Paketnetzwerke und geschichtete Protokolle stellen

die Basis für die Kommunikation in verteilten Systemen dar. LANs basieren auf

Paket-Broadcasting über ein gemeinsam genutztes Medium; Ethernet ist die vorherrschende

Technologie. WANs basieren auf Paketvermittlung, um Pakete über ein verbundenes

Netzwerk an ihr Ziel zu bringen. Das Routing ist ein Schlüsselmechanismus

und es werden zahlreiche Routing-Algorithmen eingesetzt, wobei die Distanzvektor-Methode

die grundlegende und gleichzeitig die effektivste ist. Eine Überlastkontrolle

ist erforderlich, um Überläufe in den Puffern beim Empfänger und den

Zwischenknoten zu verhindern.

Netzwerkzusammenschlüsse werden durch die Schichtung eines „virtuellen“

Netzwerk-Protokolls über mehrere durch Router verbundene Netzwerke aufgebaut.

Die Internet-TCP/IP-Protokolle erlauben den Computern im Internet, auf einheitliche

Weise miteinander zu kommunizieren, unabhängig davon, ob sie sich im selben

LAN oder in unterschiedlichen Ländern befinden. Die Internetstandards beinhalten

zahlreiche Protokolle auf Applikationsebene, die für die Verwendung in verteilten

WAN-Applikationen geeignet sind. IPv6 bietet einen viel größeren Adressraum, der

für die zukünftige Entwicklung des Internets erforderlich ist, und deckt neue Forderungen

der Applikationen ab wie beispielsweise Dienstgüte und Sicherheit.

Mobile Benutzer werden durch MobileIP für WAN-Roaming und durch Funk-

LANs unterstützt, die auf IEEE 802.11 basieren. ATM unterstützt eine asynchrone

Kommunikation mit höchster Bandbreite, die auf virtuellen Schaltungen mit garantierter

Dienstgüte basieren.

Ü BUNGEN

3.1 Ein Client sendet eine Anforderungsnachricht mit 200 Byte an einen Dienst, der eine

Antwort mit 5.000 Byte erzeugt. Schätzen Sie die Gesamtzeit für die Abarbeitung der

Anforderung in den folgenden Fällen ab; die Voraussetzungen für die Leistung sind

nachfolgend aufgelistet:

a. unter Verwendung einer verbindungslosen (Datagramm-) Kommunikation (z.B.

UDP);

b. unter Verwendung einer verbindungsorientierten Kommunikation (z.B. TCP);

c. der Server-Prozess befindet sich auf derselben Maschine wie der Client.

[Latenz pro Paket (lokal oder entfernt, sowohl beim Senden als auch beim Empfangen):

5 ms

Verbindungseinrichtungszeit (nur TCP): 5 ms

Datenübertragungsgeschwindigkeit: 10 Mbps

MTU: 1.000 Byte

Verarbeitungszeit der Anforderung auf dem Server: 2 ms

Das Netzwerk ist nur leicht ausgelastet.] (Seite 89-90, 134)

3.2 Das Internet ist viel zu groß, als dass ein einziger Router die Routing-Informationen

für alle Ziele verwalten könnte. Wie kompensiert das Internet-Routingschema dieses

Problem? (Seite 108-109, 126-127)


3.6 Zusammenfassung 155


3.3 Welche Aufgabe hat ein Ethernet-Switch? Welche Tabellen verwaltet er?

(Seite 117, 141-142)

3.4 Legen Sie eine Tabelle ähnlich Abbildung 3.5 an, die die Arbeit der Software in jeder Protokollschicht

beschreibt, wenn die Internet-Applikationen und die TCP/IP-Folge über ein

Ethernet implementiert sind. (Seite 103, 134, 141-142)

3.5 Wie wurde das Ende-zu-Ende-Argument [Saltzer et al. 1984] auf den Entwurf des

Internets angewendet? Überlegen Sie, wie die Verwendung eines virtuellen Schaltungsnetzwerk-Protokolls

anstelle von IP die Machbarkeit des World Wide Web

beeinflussen würde.

(Seiten 58-59, 104-105, 118, [www.reed.com])

3.6 Können wir sicher sein, dass zwei Computer im Internet nie dieselbe IP-Adresse

haben? (Seite 120-121)

3.7 Vergleichen Sie die verbindungslose (UDP) und die verbindungsorientierte (TCP)

Kommunikation für die Implementierung der folgenden Protokolle auf Applikationsebene

bzw. auf der Darstellungsschicht:

a. virtueller Terminalzugriff (z.B. Telnet);

b. Dateiübertragung (z.B. FTP);

c. Benutzerortung (z.B. rwho, finger);

d. Informationsbrowsing (z.B. HTTP);

e. entfernte Prozeduraufrufe. (Seite 134)

3.8 Erklären Sie, wie eine Folge mehrerer Pakete über ein WAN übertragen werden

kann, sodass sie am Ziel in der Reihenfolge ankommen, in der sie versendet wurden.

Warum ist das in einem lokalen Netzwerk nicht möglich? Ist es in einem ATM-

Netzwerk möglich? (Seite 107, 143, 151-152)

3.9 Ein spezielles Problem, das von Protokollen für den entfernten Terminalzugriff wie beispielsweise

Telnet gelöst werden muss, ist die Notwendigkeit, außerordentliche Ereignisse

wie beispielsweise „Kill-Signale“ vom „Terminal“ zum Host zu übertragen und

zwar vor zuvor übertragenen Daten. Kill-Signale sollten ihr Ziel vor allen anderen laufenden

Übertragungen erreichen. Beschreiben Sie eine Lösung für dieses Problem

mit verbindungsorientierten und verbindungslosen Protokollen. (Seite 133-134)

3.10 Welche Nachteile hat die Verwendung von Broadcasting auf Netzwerkebene für

lokale Ressourcen:

a. in einem einzelnen Ethernet?

b. in einem Intranet?

In welchem Ausmaß stellt Ethernet-Multicast eine Verbesserung gegenüber dem

Broadcasting dar? (Seite 141-142)

3.11 Schlagen Sie ein Schema vor, das MobileIP verbessert und Zugriff auf einen Webserver

auf einem mobilen Gerät bietet, das manchmal über ein Mobiltelefon an das

Internet angeschlossen ist und manchmal an einer von mehreren möglichen Positionen

eine feste Verbindung zum Internet hat. (Seite 132)

3.12 Zeigen Sie die Änderungen an den Routing-Tabellen aus Er muss sein Wissen über

das Netzwerk ständig aktualisieren, indem er den Verkehr beobachtet und Konfigurationsänderungen

oder Fehler erkennt. Diese Aktivität ist weniger zeitkritisch; hier

können langsamere und weniger rechenintensive Techniken verwendet werden., die

(gemäß des in Abbildung 3.9 gezeigten RIP-Algorithmus) auftreten, nachdem die in

Abbildung 3.7 als 3 gekennzeichnete Verbindung unterbrochen wurde.

(Seite 108-113)


156

Kapitel 3 – Netzwerke und Internetworking


3.13 Verwenden Sie die Skizze aus Abbildung 3.13 als Grundlage für eine eigene Skizze,

die die Segmentierung und Kapselung einer HTTP-Anforderung an einen Server und

der resultierenden Antwort zeigt. Gehen Sie davon aus, dass es sich um eine kurze

HTTP-Nachricht handelt, die Antwort aber mindestens 2.000 Byte HTML umfasst.

(Seite 101-102, 119-120)

3.14 Betrachten Sie die Verwendung von TCP in einem entfernten Telnet-Terminal-Client.

Wie sollte die Tastatureingabe auf dem Client gepuffert werden? Werten Sie die

Algorithmen von Nagle und Clark [Nagle 1984, Clark 1982] in Hinblick auf die

Flusssteuerung aus und vergleichen Sie diese mit dem einfachen Algorithmus, der

auf Seite 132-133 beschrieben wurde, wenn TCP von (a) einem Webserver, (b)

einem Telnet-Protokoll, (c) einer entfernten Grafik-Applikation mit ständiger Mauseingabe

verwendet wird. (Seite 113-114, 135-136)

3.15 Skizzieren Sie ein Netzwerkdiagramm ähnlich dem in Abbildung 3.10 gezeigten für

das lokale Netzwerk Ihres Unternehmens oder Ihrer Organisation. (Seite 116)

3.16 Beschreiben Sie, wie Sie eine Firewall konfigurieren würden, um das lokale Netzwerk

in Ihrem Unternehmen oder Ihrer Organisation zu schützen. Welche eingehenden

und ausgehenden Anforderungen sollten abgefangen werden?

(Seite 137-138)

3.17 Wie findet ein neu installierter PC, der an ein Ethernet angeschlossen wird, die IP-

Adressen der lokalen Server? Wie übersetzt er sie in Ethernet-Adressen?

(Seite 123-124)

3.18 Können Firewalls Denial of Service-Angriffe verhindern, wie beispielsweise den auf

Seite 125 beschriebenen? Welche anderen Methoden stehen für den Umgang mit

solchen Angriffen zur Verfügung? (Seite 124-125, 137-138)

Weitere Magazine dieses Users
Ähnliche Magazine