George Coulouris Jean Dollimore Tim Kindberg. Verteilte Systeme. Konzepte und Design. 3., überarbeitete Auflage

Ähnliche Dokumente
Computeranwendung in der Chemie Informatik für Chemiker(innen) 4. Netzwerke

Rechnernetze I. Rechnernetze I. 1 Einführung SS Universität Siegen Tel.: 0271/ , Büro: H-B 8404

Verteilte Systeme. Protokolle. by B. Plattner & T. Walter (1999) Protokolle-1. Institut für Technische Informatik und Kommunikationsnetze

Rechnernetze I SS Universität Siegen Tel.: 0271/ , Büro: H-B Stand: 21.

Netzwerke und Internetworking

Das ISO / OSI -7 Schichten Modell

SCHICHTENMODELLE IM NETZWERK

Grundlagen. Vortrag von. Veranstaltung. Rüdiger Busch. Rechnernetze 1

Rechnernetze I SS Universität Siegen Tel.: 0271/ , Büro: H-B Stand: 25.

Netzwerktechnologie 2 Sommersemester 2004

THEMA. Das ISO / OSI - Referenzmodell. 1 Vorlesung - FHDW Prof. Dr. G. Hellberg Juli 2001

Das ISO/OSI Referenzmodell Internet (TCP/IP) Referenzmodell. Standard Elemente Schichten im ISO/OSI Referenzmodell.

2 Kommunikationssysteme. vs2 1

DAS EINSTEIGERSEMINAR

Grundkurs Datenkommunikation

Paketvermittlung (1/9)

Internetanwendungstechnik. TCP/IP- und OSI-Referenzmodell. Gero Mühl

Rechnern netze und Organisatio on

Informations- und Kommunikationssysteme

Was ist das OSI-Referenzmodell eigentlich und wofür wird es benötigt?

Inhaltsverzeichnis. 1 Einleitung... 1

Technische Informatik II FS 2008

Abschlussklausur. Computernetze. 14. Februar Legen Sie bitte Ihren Lichtbildausweis und Ihren Studentenausweis bereit.

Systeme II. Christian Schindelhauer Sommersemester Vorlesung

Dirk Larisch. Das Einsteigerseminar Netzwerktechnik. bhy

VS3 Slide 1. Verteilte Systeme. Vorlesung 3 vom Dr. Sebastian Iwanowski FH Wedel

Dr. Franz-Joachim Kauffels. Durchblick im Netz. 5., überarbeitete Auflage. mitp

Grundkurs Datenkommunlkation

OSI Referenzmodell. Aufbau des Referenzmodells Funktionsweise

Vorlesung Rechnernetze

Datenübertragung. Kommunikationstechnik, SS 08, Prof. Dr. Stefan Brunthaler 33

LAN & Internet. Grundlagen Netzwerke LAN-2. Saarpfalz-Gymnasium. Router. Router LAN-3. Router. Kommunikation in Rechnernetzen

Netzwerkanalyse in Ethernet - IP Datennetzen

Rechnernetze Übung 11. Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Juni 2012

Das Internet-Protocol. Aufteilung von Octets. IP-Adressformat. Class-A Netzwerke. Konventionen für Hostadressen

Verteilte Systeme - Java Networking (Sockets) -

Wo geht's lang: I Ro R u o t u i t n i g

Eigenschaften von IP-Netzen (1 / 2)

Rechnernetze Übung 11

Themenschwerpunkt: Rechnernetze und Netzwerkdesign

Franz-Joachim Kauffels. Durchblick im Netz. 3., überarbeitete Auflage

Lösung von Übungsblatt 10. (Router, Layer-3-Switch, Gateway)

Grundkurs Computernetzwerke

Rechnernetze I. Rechnernetze I. 1 Einführung SS Universität Siegen rolanda.dwismuellera@duni-siegena.de Tel.: 0271/ , Büro: H-B 8404

LANCOM Techpaper Performance

Technische Grundlagen

Fakultät Informatik Professur für VLSI-Entwurfssysteme, Diagnostik und Architektur. Diplomverteidigung

Lösung von Übungsblatt 10. (Router, Layer-3-Switch, Gateway)

Carsten Harnisch. Der bhv Routing & Switching

Themen. Transportschicht. Internet TCP/UDP. Stefan Szalowski Rechnernetze Transportschicht

Funktionselemente von Netzwerken

Vorlesung 11. Netze. Peter B. Ladkin Sommersemester 2001

OSI-Schichtenmodell. Martin Fechtner

NGN. (Next Generation Network)

Dirk Larisch. Das Einsteigerseminar Netzwerktechnik

Modul N4 Adressierung und Protokolle

Rechnernetze I. Rechnernetze I. 2 Protokolle und Protokollhierharchie SS 2012

Unser kleines Heim-Netzwerk

Netzwerkgrundlagen. OSI-Modell. Layer 1 Physikal Layer. Layer 2 Data Link Layer. Layer 3 Network Layer

WAN-Technologien. 1. Definition:

Verteidigung der Diplomarbeit 3D-Netzwerk-Visualisierung

Einführung ins Internet

netzwerke TECHNISCHE KAUFLEUTE UND HWD

MULTIMEDIA VIA INTERNET

TCP/IP-Protokollfamilie

Rechnernetze I SS Universität Siegen Tel.: 0271/ , Büro: H-B Stand: 23.

GigE Vision: Der Standard

UDP User Datagramm Protokoll

Grundkurs Computernetzwerke

Rechnernetze I. Rechnernetze I. 2 Protokolle und Protokollhierharchie. SoSe 2018

Rechnernetze I SS Universität Siegen Tel.: 0271/ , Büro: H-B Stand: 8.

Das TCP/IP Schichtenmodell

FAQ AZARA VON ZEBRA AZARA SO BEANTWORTEN SIE DIE WICHTIGSTEN KUNDENFRAGEN

Abschlussklausur. Moderne Netzstrukturen. 18. Februar Aufgabe: Σ Note

Netzwerktopologien. Unter Netzwerktopologie versteht man die Art und Weise (Struktur), in der die einzelnen Netzwerkelemente verbunden werden.

3b: Telekommunikation

Vorlesung 11: Netze. Sommersemester Peter B. Ladkin

Prof. Dr. Christian Baun 5. April Errata zur 2. Auflage von Computernetze kompakt. Erschienen 2013 bei Springer Vieweg. ISBN:

Netzwerke, Kapitel 3.1

Übungsblatt 4. (Router, Layer-3-Switch, Gateway) Aufgabe 2 (Kollisionsdomäne, Broadcast- Domäne)

Übungsblatt 4. (Router, Layer-3-Switch, Gateway) Aufgabe 2 (Kollisionsdomäne, Broadcast- Domäne)

10/100/1000Mbps Gigabit LAN Card. Bedienungs-Anleitung

Rechnerkommunikation II

Verwenden von Hubs. Geräte der Schicht 1 Günstig Eingang an einem Port, Ausgang an den anderen Ports Eine Kollisionsdomäne Eine Broadcast-Domäne

Vorlesung SS 2001: Sicherheit in offenen Netzen

Aufgaben zum ISO/OSI Referenzmodell

Modul 117. OSI-Referenzmodell

Netzwerk-Programmierung. Netzwerke. Alexander Sczyrba Michael Beckstette.

Präsentation Zusammenfassung: OSI-Schichtenmodell, Hub, Switch

Netzwerkperformance 2.0

II

Digitale Kommunikation und Internetdienste 1

Transkript:

George Coulouris Jean Dollimore Tim Kindberg Verteilte Systeme Konzepte und Design 3., überarbeitete Auflage ein Imprint der Pearson Education Deutschland GmbH

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