Rechnernetze und verteilte Systeme (BSRvS II) WS 2010/2011 Prof. Dr. Heiko Krumm FB Informatik, LS IV, AG RvS Universität Dortmund • • • • • • • • • • H. Krumm, RvS, Informatik IV, Uni Dortmund Computernetze und das Internet Anwendung Transport Vermittlung Verbindung Multimedia Sicherheit Netzmanagement Middleware Verteilte Algorithmen 1 Literatur Zentrale Literatur J. F. Kurose, K. W. Ross: Computernetze; Pearson Studium 2002 bzw. die neuere englische Ausgabe: J. F. Kurose, K. W. Ross: Computer Networking, 3rd Ed., Pearson 2005 Weitere Empfehlungen A. Tanenbaum: Computer Netwerke; Pearson Studium 2000 D. E. Comer: Computernetzwerke und Internets; Pearson Studium 2000. L. L. Peterson, B. S. Davie: Computernetze; dpunkt Verlag 2000. H. Krumm, RvS, Informatik IV, Uni Dortmund 2 Folien Zusammenstellung aus folgenden Quellen: Foliensatz zum Buch „ J. F. Kurose, K. W. Ross: Computernetze; Pearson Studium 2002“ Foliensatz der Vorlesung „Betriebssysteme, Rechnernetze und verteilte Systeme II“, WS 2003/2004, H. Wedde, LS III Foliensatz der Vorlesung „Betriebssysteme, Rechnernetze und verteilte Systeme II“, WS 2006/2007, H. Krumm, LS IV Foliensatz der Vorlesung „Betriebssysteme, Rechnernetze und verteilte Systeme II“, WS 2007/2008, P. Buchholz, LS IV Foliensatz des Kurses „Computer Networks“, SS 2004, S. Lam, University of Texas at Austin Foliensatz der Vorlesung „Rechnernetze und verteilte Systeme“, WS2002/2003, H. Krumm, LS IV Zusätzliche „neue“ Folien H. Krumm, RvS, Informatik IV, Uni Dortmund 3 Rechnernetze und verteilte Systeme Rechnernetz: Durch Telekommunikationssystem verbundene Rechnerknoten Telekommunikationssystem: System, das Teilnehmern Kommunikationsdienste anbietet (in der Regel selbst durch Rechnernetz implementiert) Verteiltes System: Anwendung, deren Komponenten sich an verschiedenen Orten befinden, Komponenten sind in Rechnernetz installiert, werden lokal von den Rechnerknoten ausgeführt und kommunizieren miteinander mit Hilfe eines Telekommunikationssystems. H. Krumm, RvS, Informatik IV, Uni Dortmund 4 Besonderheiten verteilter Systeme Kommunikation – unzuverlässig, teuer, langsam Entfernung Instanz Instanz Lose Kopplung – Kommunikation selten – Synchronisation schwach – Fehlertoleranz Instanz Nebenläufigkeit (Concurrency) – weitgehend unabhängige Fortschritte Dezentrale Kontrolle – weitgehende Autonomie – lokale Kontrolle auf Basis partieller Sichten – vollständige Sicht des globalen Systemzustands wird vermieden, da das zu teuer ist (Einfrieren) H. Krumm, RvS, Informatik IV, Uni Dortmund 5 Verteilung verdeckbar? Unzuverlässigkeit! HH M t Treffen am 28.10. in Dortmund?! Bitte quittieren! Ok! Aber bitte Quittung der Quittung quittieren! ..... Ok! Aber bitte Quittung quittieren! 28.10. erreicht! Gäbe es ein Protokoll, das dieses mit n Nachrichten leisten könnte, dann müsste es auch den Verlust der letzten Nachricht tolerieren, also dieses auch mit (n-1) Nachrichten leisten können. Dann müsste es auch den Verlust der (n-1)-ten Nachricht tolerieren, … Vollständig zuverlässige Übereinkunft unter Fristsetzung ist nicht möglich! H. Krumm, RvS, Informatik IV, Uni Dortmund 6 Anwendungen: Trends H. Krumm, RvS, Informatik IV, Uni Dortmund 7 Anwendungen: Trends H. Krumm, RvS, Informatik IV, Uni Dortmund 8 Anwendungen: Trends H. Krumm, RvS, Informatik IV, Uni Dortmund 9 Anwendungen: Trends H. Krumm, RvS, Informatik IV, Uni Dortmund 10 Anwendungen: Trends • Eigenschaften • Nebenläufigkeit • Systemgröße • Systemlebensdauer • Örtliche Verteilung • Veränderungen (Umgebungen und Anforderungen) • Anpassungen • Erweiterungen • Entwicklungslinien • Web-Orientierung • Dienste-Orientierung (SOA) • Ubiquität und Mobilität H. Krumm, RvS, Informatik IV, Uni Dortmund 11 Rechnernetze Datennetz (Internet) Rechner Verbindungseinrichtung WAN Nomadic Computing LAN Mobile Computing H. Krumm, RvS, Informatik IV, Uni Dortmund 12 Rechnernetz - Übersicht Endsystem Endsystem TS Lokales Netz Endsystem Hub TS TS Öffentliches Vermittlungsnetz Endsystem TS Endsystem Kommunikationssystem TS Hub Lokales Netz Peripherie Endsystem Rechner H. Krumm, RvS, Informatik IV, Uni Dortmund 13 Dienstleistende Systeme Instanzen – Menge von Dienstnehmern Dienstnehmer Dienstnehmer Dienstnehmer – Diensterbringer (offenes Subsystem) Kommunikation – vertikale Kommunikation » Abwicklung von Dienstleistungen zwischen Dienstnehmer und Dienstleister Diensterbringer – horizontale Kommunikation » zwischen Dienstnehmern Kommunikationssysteme – in der Zeit Datenhaltungssystem – im Raum Telekommunikationssystem » Dienstleistungen dienen dem Nachrichtenaustausch zwischen Dienstnehmern » Diensterbringer interpretiert Nachrichten nicht H. Krumm, RvS, Informatik IV, Uni Dortmund 14 Kommunikationsdienst User User Dienstzugangspunkt User Kommunikationsdienst Dienstleistung Dienstleistung Ein Kommunikationsdienst bietet Teilnehmern Dienstleistungen zum Nachrichtenaustausch an. Wichtige Eigenschaften der Dienstleistungen betreffen: • Partneradressierung • Datagramme (verbindungslose Kommunikation, z.B. UDP) • Verbindungsorientierung: Verbindungen und virtuelle Verbindungen (z.B. TCP) • Zwei- / Mehrpartner-Kommunikation (Uni- / Multi- / Broadcast) • Richtung (Simplex, Duplex, Halbduplex) H. Krumm, RvS, Informatik IV, Uni Dortmund 15 Kommunikationsdienst – Sichten Statische Sicht Die Dienstschnittstelle, ist gegliedert in Dienstzugangspunkte, welchen Dienstadressen zugeordnet sind. Briefkasten Schlossallee Briefkasten Hauptpost Wohnungsbriefkasten Maier Wohnungsbriefkasten Maier Dynamische Sicht An der Dienstschnittstelle treten im Verlauf der Zeit Ereignisse auf: Die Anforderung und Ausführung einer Dienstleistung repräsentiert sich in zusammengehörigen Dienststimuli und t Dienstreaktionen H. Krumm, RvS, Informatik IV, Uni Dortmund Stimulus Briefeinwurf Dienstleistung Brieftransfer Reaktion Briefauslieferung 16 Dienstnehmer-Rollen und Dienstformen Zentrale Idee zur Nutzung von Ressourcen in Rechnernetzen: Anbieten und Aufrufen von Diensten Grundformen Rollen Unbestätigter Dienst Request Anforderung Initiator Anrufer Client Kunde Indication Anzeige Bestätigter Dienst Beantworter Ausführer Server Dienstleister Request Anforderung Anzeige Confirmation Bestätigung H. Krumm, RvS, Informatik IV, Uni Dortmund Indication Response Antwort 17 Kommunikationsformen – Partneranzahl Unicast (2 Partner) Broadcast (an alle) Multicast (an eine Gruppe) H. Krumm, RvS, Informatik IV, Uni Dortmund 18 Kommunikation und Kontext – Datagramme und Verbindungen Kommunikation ohne Kontext – Datagram Dienst enthält alle benötigten Informationen z.B. Brief, Telegramm, UDP-Datagramm Kommunikation im Kontext – Verbindung Verbindung wird aufgebaut, Kommunikation entlang der Verbindung, Verbindung wird abgebaut z.B. Telefon, TCP-Verbindung H. Krumm, RvS, Informatik IV, Uni Dortmund 19 Kommunikationsdienste – Richtungsbetrieb simplex A duplex B A B halbduplex A B t Z.B. Feuermelder, Sensoren H. Krumm, RvS, Informatik IV, Uni Dortmund Z.B. Telefon Z.B. Wechselsprechanlage 20 Kommunikationsdienst - Nachrichtenreihenfolge Verbindungsendpunkt Dienstzugangspunkt Auslieferungsdisziplin: • reihenfolgentreu (FIFO) • zufällig • priorisierte FIFO-Queues Verbindung puffert wie Queue Nachricht 4 3 2 1 H. Krumm, RvS, Informatik IV, Uni Dortmund 21 Kommunikationsdienst: Qualität Leistung Nachrichtenlaufzeit, Verzögerung Durchsatz (Bandbreite, Bitrate) Entfernung Zuverlässigkeit Verfügbarkeit Fehler Verlust, Verfälschung, Vertauschung,… HH Kosten Grundkosten Dienstleistungskosten Datensicherheit Verfälschung / Integrität Vertraulichkeit Zurechenbarkeit … x M 8h 775 km t H. Krumm, RvS, Informatik IV, Uni Dortmund 22 Kommunikationsdienst: Zuverlässigkeit / Fehler / Störungen H. Krumm, RvS, Informatik IV, Uni Dortmund 23 Protokolle: Ablauf in der Zeit H. Krumm, RvS, Informatik IV, Uni Dortmund 24 Protokolle: Definition Instanz Ziel-Kommunikationsdienst Schicht Instanz Instanz Basis-Kommunikationsdienst Ein Protokoll ist eine Menge von Regeln und Formaten (semantisch und syntaktisch), die das Kommunikationsverhalten von Instanzen zur Ausführung von Funktionen regelt (ISO 7498). Alle Kommunikationsaktivitäten im Internet werden von Protokollen bestimmt. Protokollstandards ermöglichen die Offenheit des Internets für Komponenten unterschiedlichster Bauart. H. Krumm, RvS, Informatik IV, Uni Dortmund 25 Protokolle: Definition Instanz Ziel-Kommunikationsdienst Schicht Instanz Basis-Kommunikationsdienst Instanz PDU Ein Kommunikationsprotokoll definiert das Kommunikationsverhalten von Instanzen, welche einen Basis-Kommunikationsdienst nutzen, um einen (höherwertigen) ZielKommunikationsdienst zu erbringen. Es wird definiert über: • Zieldienst • Basisdienst • Instanzenverhalten • PDU-Formate H. Krumm, RvS, Informatik IV, Uni Dortmund 26 Schichtung von Diensten und Protokollen Steuermann (Brücke) MaschinenTelegraph Nachrichtentransportsystem H. Krumm, RvS, Informatik IV, Uni Dortmund 27 Kommunikation Arbeit Schichtung von Diensten und Protokollen H. Krumm, RvS, Informatik IV, Uni Dortmund User mit Kooperationsbeziehung „Schiff fahren“ Direkt anwendungsbezogene Kommunikationsdienstleistungen: - Übertrage „Volle Kraft voraus“ Allgemeine Nachrichtenübermittlung - Übertrage winkelcodierte Nachricht 28 Schichtung von Diensten und Protokollen Schicht 3: - erbrachter Dienst - Instanzen und Protokoll der Schicht Schicht 2: - erbrachter Dienst - Instanzen und Protokoll der Schicht Schicht 1: - erbrachter Dienst - Instanzen und Protokoll der Schicht Basisdienst – Medium (Schicht 0) H. Krumm, RvS, Informatik IV, Uni Dortmund 29 Internet • Millionen vernetzter Computer (Endsysteme, Hosts) • PCs, Server • Toaster, Cola-Automaten • Kommunikationsleitungen • Kupfer-, Glasfaserleitungen, • Funk, Satellitenfunk • Transitsysteme (Router) leiten Daten weiter H. Krumm, RvS, Informatik IV, Uni Dortmund 30 Internet - Struktur • Netz-Peripherie: • End-Systeme (PCs, Workstations, Server) • Netz-Kern: • Transitsysteme (Router, ein Netz von Netzen) • Subnetze • Teilnetze • Übertragungsmedien: • Kommunikationsleitungen H. Krumm, RvS, Informatik IV, Uni Dortmund 31 Internet - Peripherie End-Systeme (Hosts) – beherbergen Applikationen und Server-Programme – sind Endpunkte der Verbindung Client-Server-Modell – Client stellt Anfragen und erhält Service – Server ist ”immer“ verfügbar Peer-To-Peer-Modell – keine dedizierten Server z. B. KaZaA H. Krumm, RvS, Informatik IV, Uni Dortmund 32 Internet – Datentransportdienste Ziel: Datentransfer zwischen End-Systemen TCP – Transmission Control Protocol [RFC793] verbindungsorientiert Zuverlässiger Datentransfer in richtiger Reihenfolge UDP – User Datagram Protocol [RFC768] verbindungslos / Datagramm Unzuverlässiger Datentransfer H. Krumm, RvS, Informatik IV, Uni Dortmund 33 Internet – Kern Geflecht von verbundenen Routern Wie werden die Daten durch das Netz übertragen? Leitungsvermittlung (circuit switching) – pro Verbindung eine Leitung (Telefonnetz) Paketvermittlung (packet switching) – Daten werden in einzelnen Paketen durch das Netz geschickt (Briefpost) H. Krumm, RvS, Informatik IV, Uni Dortmund 34 Netz-Kerne (allgemein): Multiplexing Benutzung einer Verbindungsleitung durch mehrere Verbindungen Die Netz-Resource (z. B. Bandbreite) wird aufgeteilt. Die ”Teile“ werden einzelnen Verbindungen zugeteilt. Keine Mitbenutzung unbenutzer ”Teile“ durch andere Verbindungen. Die Aufteilung der Bandbreite erfolgt durch Frequenzmultiplexing (frequency division) oder Zeitmultiplexing (time division). H. Krumm, RvS, Informatik IV, Uni Dortmund 35 Netz-Kerne (allgemein): Multiplexing H. Krumm, RvS, Informatik IV, Uni Dortmund 36 Netz-Kerne (allgemein): Paketvermittlung Der Datenstrom wird in separat zu transportierende Pakete aufgeteilt. Mehrere Verbindungen teilen sich eine Leitung. Jedes Paket nutzt die volle Bandbreite. Die Ressourcen werden nach Bedarf genutzt. Keine garantierte Bandbreite für den Datenstrom. – Die Summe der benötigten Ressourcen kann die Summe der vorhandenen übersteigen. Pakete im Puffer warten auf freie Ressource (Store and Forward - Prinzip). H. Krumm, RvS, Informatik IV, Uni Dortmund 37 Netz-Kerne (allgemein): Routing Datagramm-Netz – Die Zieladresse bestimmt den nächsten Hop. – Verschiedene Pakete desselben Datenstroms können unterschiedliche Wege nehmen. Virtual-Circuit Netz (VC, virtuelles Leitungsnetz) – Jedes Paket hat eine Marke (Tag), die den nächsten Hop bestimmt. – Pfad wird beim Verbindungsaufbau festgelegt. – Router speichern Verbindungsdaten. H. Krumm, RvS, Informatik IV, Uni Dortmund 38 Netz-Kerne (allgemein): Taxonomie H. Krumm, RvS, Informatik IV, Uni Dortmund 39 Physikalische Medien • Verdrillte Adernpaare (geschirmt, ungeschirmt) • Koaxialkabel • Glasfaser • Funkkanäle (erdgebunden, Satelliten) H. Krumm, RvS, Informatik IV, Uni Dortmund 40 Verzögerung in Paketnetzen Knoten-Verarbeitung Warteschlangen-Aufenthalt Übertragungsverzögerung (Paketlänge und Übertragungsrate) Signalverzögerung (Ausbreitungsgeschwindigkeit der Signale in Medium) H. Krumm, RvS, Informatik IV, Uni Dortmund 41 Verzögerung-Bandbreiten-Produkt Relative Bedeutung von Nachrichtenlaufzeit und Bandbreite – für kurze Nachrichten (z.B. 1 Byte) ist die Laufzeit (z.B. 1 ms gegenüber 300 ms) wichtiger als die Bandbreite (z.B. 1 Mbps gegenüber 1 Gbps). – für lange Nachrichten (z.B. 600 Mbyte) ist die Bandbreite wichtiger als die Laufzeit. Produkt aus Bandbreite x Laufzeit – Es entspricht der Datenmenge, die sich im Transit befinden kann. Beispiel – Bei 100 ms Laufzeit und 45 Mbps Bandbreite können sich bis zu 560 Kbyte Daten im Transit befinden H. Krumm, RvS, Informatik IV, Uni Dortmund 42 Schichtung von Diensten und Protokollen H. Krumm, RvS, Informatik IV, Uni Dortmund 43 Schichtenmodelle ISO/OSI – Kommunikation Offener Systeme – Basis-Referenzmodell – allgemeines Modell, das sich auf die logische Architektur konzentriert (Welche Funktionen können in welchem Zusammenhang in einer Kommunikation auftreten?) – (ISO 7498) TCP/IP – Internet-Protokollstack – Für (beinahe) alle Systeme implementiert. – (RFCs, IEEE-Normen) H. Krumm, RvS, Informatik IV, Uni Dortmund 44 ISO/OSI-Basisreferenzmodell Anwendungsprozess Anwendungsprozess 2-1 Transportsystem H. Krumm, RvS, Informatik IV, Uni Dortmund 45 ISO/OSI-Basisreferenzmodell: Schichten Anwendungsschicht (Application Layer) – höchste Ebene, stellt die Kommunikationsdienstleistungen bereit, die direkt von einer Anwendung benötigt werden – Beispiel: „Übertrage das Kommando eine Datei zu öffnen“ Darstellungsschicht (Presentation Layer) – reicht die Dienstleistungen des Session-Dienstes weiter – stellt Dienstleistungen bereit, mit denen sich Anwendungsprozesse über die Syntax der Nachrichten abstimmen können Kommunikationssteuerungsschicht (Session Layer) – bietet Dienstleistungen an, die zur Eröffnung, Durchführung und Beendigung einer Kommunikationsbeziehung (Session) nötig sind – Dienstleistungen zur Realisierung anwendungsnaher Fehlerbehandlungsmaßnahmen: Synchronisation, Wiederaufsetzen, Stornieren, Unterbrechen, Wiederaufnehmen H. Krumm, RvS, Informatik IV, Uni Dortmund 46 ISO/OSI-Basisreferenzmodell: Schichten Transportschicht (Transport Layer) – erweitert Endsystemverbindungen (Rechner–Rechner) zu Anwenderverbindungen (Anwender–Anwender) – Anwender = Anwendungsprozesse – behandelt Ende-zu-Ende-Qualitätsaspekte Vermittlungsschicht (Network Layer) – unterstützt beliebige Konnektivität im Netz bildet Datennetz Sicherungsschicht (Data Link Layer) – stellt zuverlässige Links zur Verfügung – Flußkontrolle, Fehlererkennung und -korrektur bildet Transportsystem je Link Bitübertragungsschicht (Physical Layer) – stellt ungesicherte Links für die Übertragung von Bitfolgen zur Verfügung. H. Krumm, RvS, Informatik IV, Uni Dortmund 47 ISO/OSI-Basisreferenzmodell: Begriffe Instanz Instanz Basis-Kommunikationsdienst Ziel-Kommunikationsdienst Schicht Instanz PDU (N)-Schicht (N)-layer Alle Instanzen einer Hierarchie-Ebene (peer-entities). Diese kommunizieren über den Basiskommunikationsdienst (N-1)-Dienst und erbringen den Zielkommunikationsdienst (N)-Dienst. (N)-Dienst (N)-service Fähigkeit der (N)-Schicht (und der Schichten darunter), die der (N+l)-Schicht an der Grenze zwischen (N)-Schicht und (N+l)-Schicht zur Verfügung gestellt wird. (N)-Protokoll (N)-protocol Verhaltens- und Formatfestlegungen (semantisch und syntaktisch) zum Kommunikationsverhalten der (N)-Instanzen. H. Krumm, RvS, Informatik IV, Uni Dortmund 48 ISO/OSI-Basisreferenzmodell: Begriffe Instanz Instanz Basis-Kommunikationsdienst Ziel-Kommunikationsdienst Schicht Instanz PDU (N)-Dienstzugangspunkt (N)-service-access-point Punkt, an dem der (N)-Dienst den (N+1)-Instanzen (oder Nutzern) zur Verfügung gestellt wird. (N)-Adresse (N)-address Kennung, zur Identifikation eines (N)-Dienstzugangspunkts. (N)-Protokolldateneinheit (N)-PDU (N)-protocol data unit Nachricht welche (N)-Instanz gemäß (N)-Protokoll einer anderen (N)-Instanz sendet, besteht aus (N)-Protokollkontrollinformation: (N)-PCI PDU Nutzdaten der (N+1)-Instanzen PCI Nutzdaten H. Krumm, RvS, Informatik IV, Uni Dortmund 49 TCP/IP Protokollstapel (Protocol Stack) H. Krumm, RvS, Informatik IV, Uni Dortmund 50 TCP/IP Protokollstapel application layer unterstützt verteilte Applikationen (umfasst die ISO/OSI-Schichten 5, 6 und 7) Anwendungsprotokolle FTP, SMTP, HTTP, SNMP, DNS, … transport layer Datenübertragung von Anwendung zu Anwendung (Port zu Port) Transportprotokolle TCP, UDP network layer transportiert (routet) Datagramme von Endsvstem zu Endsystem Internet-Protokoll IP, RoutingProtokolle H. Krumm, RvS, Informatik IV, Uni Dortmund data link layer Datentransfer zwischen benachbarten Systemen PPP, Ethernet, … physical layer Bitübertragung auf der Leitung oder im Funkkanal RS-232, Ethernet, … 51 Beispiel für lokales TCP/IP-Netz H. Krumm, RvS, Informatik IV, Uni Dortmund 52 Logische Kommunikation - Transportschicht H. Krumm, RvS, Informatik IV, Uni Dortmund 53 Physikalische Kommunikation H. Krumm, RvS, Informatik IV, Uni Dortmund 54