Koordinaten Seminar Verteilte Anwendungen Thorsten Strufe CC 442 Tel. 03677/69-4552 Fax 03677/69-4540 Email [email protected] (http://eris.prakinf.tu-ilmenau.de/) Thorsten Strufe Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut Praktische Informatik und Medieninformatik Fachgebiet Telematik Seminar VA (04/05) S ( ) 1 Seminar VA (04/05) S ( ) Literatur Ziele der Veranstaltung Vermittlung von Wissen zu Rechnernetzen TCP/IP-Protokollstack Netzwerkschnittstelle der Rechner Anwendungsprotokolle Einführung in die verteilten Anwendungen – Einführung in die Thematik – Protokoll-/Port-Konzept – Client-/Server Modell Technologien zur Programmierung von verteilten Anwendungen – – – – – IPC Sockets RPC (DCE), RMI Middleware und Komponentenmodell Webservice-Welt Seminar VA (04/05) S ( ) Krüger, Reschke. Lehr- und Übungsbuch Telematik. Fachbuchverlag Leipzig im Carl Hanser Verlag George Coulouris, Jean Dollimore, Tim Kindberg: Distributed Systems, Concept and Design. Addison Wesley, 2002 Andrew S. Tanenbaum, Maarten van Steen: Distributed Systems, Principles and Paradigms. Prentice Hall, 2002 Marko Boger: Java in verteilten Systemen. dpunkt-Verlag, 199 W. Richard. Stevens. TCP/IP Illustrated, Volume 1 - The Protocols. Addison Wesley, 1994 W. Richard Stevens. Programmieren von Unix-Netzen. Carl Hanser und Prentice-Hall, 1992 Troy Bryan Downing. Java RMI: remote method invocation. IDG Books Worldwide, 1998 Jens-Peter Redlich. CORBA 2.0: praktische Einführung für C++ und Java. AddisonWesley, 1996... Seminar VA (04/05) S ( ) 4 Überblick Vorlesungen (Telematik): • LAN‘s (Überblick zur Auffrischung) • Netztechnologien (mux, ATM, DSL...) (Schicht 0) • Protokolle und Eigenschaften Dienstgüte etc... • Das Internet (Ein kompletter Protokollstack, von Adressierung bis Anwendungen) • VoIP • Mobile Netze • Sichere Systeme Motivation Seminare (Anwendungen): Übung/ Praktikum • Internet-Anwendungen, TCP/IP • Konzepte für verteilte Anwendungen • Anwendungsprotokolle • Client/Server-Entwicklung Socket-API, Java-RMI • Applikationsprogrammierung • Laufzeit- und Entwicklungsumgebungen DCE, CORBA (EJB) Seminar VA (04/05) S ( ) S ( ) Kopplung verschiedener Netzwerke Z.B. Netzwerke, die auf jeweils eine Abteilung beschränkt sind, sollen auch für die Kommunikation zwischen den Abteilungen benutzt werden. bessere Auslastung und effizientere Nutzung von Betriebsmitteln Datenübertragung von einem Rechner zu einem anderen Nutzung entfernter Rechnerleistung Zugriff auf Programme, die sich auf speziellen Rechnern befinden Kopplung von Netzwerken, die auf verschiedenen Technologien beruhen Seminar VA (04/05) TCP/IP ist die Abkürzung für Transmission Control Protocol / Internet Protocol - benannt nach seinen zwei Hauptstandards. TCP/IP ist nicht ein Protokoll, sondern Ansammlung von vielen Protokollen, die sowohl – spezifizieren, wie Rechner miteinander kommunizieren können, – als auch Konventionen für die Verbindung von Netzwerken und die Weiterleitung von Paketen durch die Netzwerke (Routing) festlegen. in den USA entwickelt, wegen Notwendigkeit eines nationalen Netzwerkes sahen Finanzierung hauptsächlich durch DARPA (Defense Advanced Research Projects Agency ) Seminar VA (04/05) 5 TCP/IP Grundlagen S ( ) grundlegendes Prinzip des IP: – Verbindungsloser Paketdienst zerlegt Informationen in Datenpakete und verschickt diese unabhängig voneinander mit einer Empfängeradresse versehen. – Der Weg eines Datenpaketes über einzelne Vermittlungsknoten ist nicht vorbestimmt. wesentliche Probleme: – keine garantierte Bandbreite – keine gesicherten Übertragungswege – schwankende Performance – Sicherheitslücken entscheidende Vorteile: – preiswerte Integration heterogener Unternehmensnetze mit TCP/IP – Plattformunabhängigkeit durch Standards auf Anwendungsniveau Seminar VA (04/05) S ( ) Schichtenmodelle und der Internet - Protokollsatz (kleiner Reminder) OSI- vs. TCP/IP-Schichtenarchitektur Übersicht Aufgaben nach ISO/OSI Application User Prozeß Application Presentation User Prozeß FTP SMTP ... OSI 5 ... 7 Session Anwendungsschicht Transport Transport TCP OSI 4 UDP Transportschicht Internet Protocol Network OSI 3 IGMP ICMP IP ARP IP Data Link Network Interface OSI 1 ... 2 Physical Netzwerkschicht S ( Seminar VA (04/05) ) Funktionsweise von TCP/IP Rechner A RARP Applikation HardwareSchnittstelle Application Layer (Anwendungsschicht) • Verteilte Anwendungen und ihre Protokolle Presentation Layer (Darstellung) • Kompatible Datenformate zwischen Applikationen • Interpretation der Information, Kodierung/Dekodierung Session Layer (Sitzungsschicht) • Dialogsteuerung (Dialog = Sitzung) • Koordination von Operationen, Synchronisation des Datentransfers Transport Layer • verbindungsorientierte/ verbindungslose Dienste • Zuordnung der Dateneinheiten zu den einzelnen Verbindungen • Flußsteuerung zwischen Sender und Empfänger Network Layer • Routing der Pakete durch das Netz • Abrechnungsfunktionalität • Verbindungslose/ verbindungsorientierte Dienste Data Link Layer (Sicherungsschicht) • Einbettung der Rohdaten in Übertragungsrahmen • Erkennen und quittieren der Rahmen • Fehlerbehandlung Physical Layer (Übertragungsschicht) • Übertragung der Bits über eine Kommunikationskanal Seminar VA (04/05) S ( ) 10 Netzwerkschnittstellen-Schicht Rechner B Applikation at ta ti it in ni Transport Transport Applikation Internetprotokoll Transport Netzwerk Schnittstelle Internetprotokoll Internetprotokoll Netzwerk Schnittstelle nn nn Internet Netzwerk at, ta: User Data TCP User Data IP TCP User Data IP TCP User Data ti, it: in, ni: nn: Seminar VA (04/05) NI Netzwerk Schnittstelle S ( ) 11 Unterste Schicht des Modells Netzwerkschnittstellen-Schicht kann Geräte-Treiber (z.B. EthernetTreiber) oder ein komplexeres Subsystem sein, das seine eigenen Protokolle benutzt (z.B. X.25). Seminar VA (04/05) S ( ) 1 Internet Protocol - IP Internet Datagramm Applikation Transport Internetprotokoll Netzwerk Schnittstelle Zweck des IP Definition der Datengrundeinheit und des exakten Formats Regeln, wie Pakete verarbeitet und wie Fehler behandelt werden Datenübertragung (auf IP-Ebene unzuverlässig) Routing Konzepte S ( Seminar VA (04/05) ) Die Grundeinheit des virtuellen Netzes Internet ist das Internet Datagramm. Das Internet-Datagramm wird in Kopf- und Datenteil aufgeteilt. Der Kopf enthält Quell- und Zieladresse (als Internet-Adressen). Generelle Form des IP-Datagramms Header 1 Data S ( Seminar VA (04/05) ) 14 IP - Header Die Länge eines Datagramms hängt von der benutzten Technologie ab, das IP-Datagramm wird in ein Netzwerk-Paket (Frame) verpackt. 0 1 2 3 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 Network Frame Header Version IHL Type of Service Total Length Data Identification Encapsulation (Verpackung) Encapsulation Header Time to Live Protocol Fragment Offset Header Checksum Source Address Data IP-Datagramm Destination Address Die von der Netzwerktechnologie jeweils erlaubte Höchstlänge wird als MTU (Maximum Transfer Unit) bezeichnet: — z.B. Ethernet 1500 Octets Seminar VA (04/05) Flags S ( ) 15 Options (if any) Seminar VA (04/05) S ( ) 1 Fragmentierung Datagramm - Fragmentierung Bei Transit über Netze mit geringerer MTU Aufteilung! – Beispiel: Ein Paket geht von proNET-10 Token-Ring (2000 Octets MTU) über ein Gateway in ein Ethernet (1500 Octets MTU). Wichtige Felder: Identification, Flags und Fragment Offset – Identification: eindeutige Integer-Zahl zur Identifikation des Datagramms beeinflußte Header-Felder: – Gesamtlänge – Flags – Fragment Offset – IP-Header-Prüfsumme – Optionen Fragment Offset: – spezifiziert die Lage des Fragments zu originalem IP Datagramm als ein Vielfaches von 8 Bytes (Grundeinheit der Fragmentierung) – Die Länge des Offset-Feldes beträgt 13 Bit Maximum von 8192 Fragmenten pro Datagramm möglich, original Datagramm darf maximal 65536 Bytes lang sein – Flags: kontrolliert die Fragmentierung; ( Bit 1 gesetzt: es darf nicht fragmentiert werden; Bit 2 gesetzt: es folgen weitere Fragmente) – Fragment Offset: gibt Offset des aktuellen Datagramms zum Beginn des Original-Datagramms an Seminar VA (04/05) S ( ) (siehe auch IP-Header, Total Length) 1 Seminar VA (04/05) S ( ) 1 Internet - Protokoll - Primitive Beispiel: Fragmentierung (Prinzip) Header-Felder nicht berücksichtigt Headerfeld Gesamtlänge Fragment Offset Don't Fragment Bit More-Bit originales Datagramm Fragment 1 Fragment 2 472 0 0 0 256 0 1 1 216 32 1 0 Seminar VA (04/05) S ( ) 1 send (Source Address, Destination Address, Protocol, Service Type, Identification, Don't Fragment Indicator, Time to Live,Data Length, Options, Data) deliver (Source Address, Destination Address, Protocol, Service Type, Data Length, Options, Data ) Source Address, Destination Address: Internet-Adressen Protocol: gewünschtes höheres Protokoll (z.B. TCP, UDP) Service Type: gewünschte Dienstart Identification: Zuordnung von Fragmenten zu einem Datagramm Don't Fragment Indicator: Fragmentierung verhindern Time to Live: maximale Lebensdauer im Netz Data Length: Gesamtlänge des Datagramms Options: optional Data: Nutzdaten Seminar VA (04/05) S ( ) 0 Adressierung im Internet Domain Name System (DNS) Jedes Interface im Internet hat eindeutige IP-Adresse. Die 32-Bit-Internet-Adresse wird mit vier Dezimalnummern punktiert angegeben. (z.B. 141.24.32.94). Das Internet Network Information Center (InterNIC) ist für die Vergabe von Netzwerk-ID's autorisiert. Die Host-ID vergibt der Systemadministrator. Für den Menschen ist die Angabe eines Rechnernamens verständlicher. Deshalb wurde das Domain Name System (DNS) eingeführt. Domain Name System (DNS) ist eine weltweit verteilte Datenbasis, die Mapping zwischen IP-Adressen und Host-Namen im Internet ermöglicht. (z.B. eris.prakinf.tu-ilmenau.de) Seminar VA (04/05) S ( ) Der Unterschied zwischen Namen und Adressen ist nur künstlich: – Namen sind Identifikatoren - wie Adressen auch. – Zwischen Namen und Adressen lassen sich Abbildungen herstellen. Die Form der Namen ist wichtig, sobald die Anzahl der Rechner hoch genug ist, denn es muß – eine Abbildung aus dem Namen in eine Adresse möglich sein, – gewährleistet sein, daß keine Namenskonflikte auftreten. 1 Flacher Namensraum husibaer fridolin medusa In einem flachen Namensraum bestehen die Rechnernamen aus einer Buchstabensequenz ohne weitere Struktur. Die Namen müssen von einer zentralen Stelle aus vergeben werden, damit keine Konflikte auftreten. Um die Nachteile des flachen Namensraumes zu vermeiden, wird – der Namensvergabemechanismus für Teile des Namensraumes dezentralisiert, – die Verantwortung für die Abbildung von Namen auf Adressen delegiert. Als Lösung wird der Namensraum hierarchisiert. nl de Ein flacher Namensraum hat Nachteile: – Gefahr eines Konflikts wächst mit Zahl der Netzverbindungen. – Da Namen von zentraler Stelle vergeben werden müssen, erhöht sich Arbeitslast für diese. – Da sich die Abbildung Name <-> Adresse ändern kann, sind die Kosten für lokale Kopien hoch und steigen mit Zahl der Rechner. Seminar VA (04/05) S ( ) Hierarchischer Namensraum chaos S ( Seminar VA (04/05) ) ifgmbh edu berkeley tu-berlin Informatik Rechner1 ucbvax ucbarpa S ( 4 Rechner2 Seminar VA (04/05) ) Das Internet ist auf der obersten Ebene folgendermaßen eingeteilt: Internet Domain Names Domain Name com edu gov int mil net org arpa de country code Ein hierarchischer Namensvergabe-Mechanismus ist analog dem Management einer großen Organisation: – Der Namensraum wird auf der oberen Ebene partitioniert. – Die Verantwortung für die Namensvergabe wird an bestimmte Agenten vergeben. – Einzelne Partitionen können auch wieder partitioniert werden. Die Internet-Namens-Hierarchie heißt Domain Name System (DNS). Ein Domain-Name besteht aus einer Sequenz von Unternamen (Subnames), die durch einen Delimiter - den Punkt '.' - getrennt sind. Die Subnames werden im Domain Name System als Label bezeichnet: label_1.label_2.label_3.label_4 Beispiele: S ( Seminar VA (04/05) ) 5 ROOT ... uni-erlangen Seminar VA (04/05) ... edu de ... uni-dortmund S ( ) xinus.cs.purdue.edu immd4.informatik.uni-erlangen.de S ( ) Abbildung von Adressen auf Namen Das Domain Name System für die Abbildung von Namen auf InternetAdressen besteht aus unabhängigen kooperativen Systemen, den Name Servern. Ein Name Server ist ein Programm, das nach Client Requests über das Internet Domain Names in Internet-Adressen abbilden kann. Alle Internet Domain Name Server sind in einer Baumstruktur organisiert: com Kommerzielle Organisationen Lehre & Forschung Regierungsinstitutionen Internationale Organisationen Militärische Organisationen Netzwerk-Unterstützungszentren Andere Organisationen Temporäre ARPANET Domain Bundesrepublik Deutschland Andere Länderkennungen Seminar VA (04/05) Abbildung von Namen auf Adressen Bedeutung Das Domain Name System stellt für die inverse Abbildung (Adressen => Namen) einen speziellen Namensraum zur Verfügung: in-addr.arpa. Die Anfrage an den Name Server, eine inverse Abbildung vorzunehmen, heißt Pointer Query. Beispiel: Benötigt wird der Domain Name für die Internet-Adresse aaa.bbb.ccc.ddd. Der Client stellt folgende Anfrage (Pointer Query) an seinen Name Server: ddd.ccc.bbb.aaa.in-addr.arpa. Als Antwort bekommt er dann für die Internet-Adresse den entsprechenden Domain Namen. Seminar VA (04/05) S ( ) Adreßdarstellung und -klassen im Internet Das Domain Name System stellt einen Mechanismus dar, der – effizient, • Die meisten Namen können lokal abgebildet werden; nur wenige Abbildungen erzeugen Internet-Verkehr. – zuverlässig, • Der Ausfall einer Maschine verhindert nicht die korrekte Funktionsweise des gesamten Systems. – verteilt, • Die Server auf den verschiedenen Rechnern arbeiten kooperativ zusammen. – für verschiedene Zwecke anwendbar • Es können auch andere Abbildungen durchgeführt werden, wie z.B. "Welche Internet-Adresse hat der Server, der den Dienst X anbietet ?" ist. S ( Seminar VA (04/05) Adreßlänge 32 Bit (Achtung! historisch:) Unterteilung in 5 Klassen: – Die ersten Bits dienen der Unterscheidung der Adreßklassen K l a s s e 0 A 0 B 1 0 C 1 1 0 D 1 1 1 0 E 1 1 1 1 0 24 Bit Host ID 7 Bit Netz ID B 1 0 14 Bit Netz ID 8 Bit Host ID 21 Bit Netz ID 28 Bit Multicast-Adresse 27 Bit (für die Zukunft reserviert) S ( Seminar VA (04/05) ) IP-Adr.: 128.0.0.1 15 0 Beispiel: IP-Routing – Die Host-ID 0 wird per Konvention nie einer Netzwerkverbindung (eines Rechners) zugeordnet, sondern meint immer das ganze Netzwerk. Beispiel: 7 16 Bit Host ID 14 Bit Netz ID ) Netzwerk-Adresse: 0 1 3 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 Netzwerk- und Broadcast-Adressen 2 1 23 IP-Adr.: 128.0.0.2 A B Ethernet Netz-Adr.: 128.0.0.0 31 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 IP-Adr.: 128.0.0.254 R IP-Adr.: 128.1.0.254 Ethernet Broadcast-Adresse: Netz-Adr.: 128.1.0.0 – Per Konvention ist die Adresse, in der alle Bits der Host-ID auf 1 gesetzt sind, die Broadcast Adresse des jeweiligen Netzes. Beispiel: 0 1 B 1 0 7 14 Bit Netz ID Seminar VA (04/05) 15 23 X 31 IP-Adr.: 128.1.0.1 Y IP-Adr.: 128.1.0.2 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 S ( ) 1 Seminar VA (04/05) S ( ) Subnet - Adressierung Variable Length Subnet Masks Problem: Mehrere Netzwerke innerhalb einer Organisation, eines Unternehmens oder einer Einrichtung benötigen eigene Netz-ID's. ⇒ Subnetz - Adressierung – Festlegung durch den Netzwerkadministrator Reservierung von Bits der Host-ID für die Subnet-ID durch die Angabe einer Subnet Mask Beispiel: 253 Subnets mit je 253 Hosts um die interne Strukturierung von IP-Netzwerken noch effektiver zu unterstützen VLSM bedeutet, daß der erweiterte Netzwerkpräfix innerhalb des Netzwerkes einer Einrichtung eine unterschiedliche Länge haben kann. Einsatz von Subnetzmasken variabler Länge ermöglicht eine effizientere Ausnutzung des Adressraums; der zuständige Netzwerkadministrator kann die Länge des erweiterten Netzwerkpräfix flexibler an unterschiedliche Anforderungen einzelner Teilnetze anpassen. Klasse B Subnet Mask 10 14 Bit 8 Bit 8 Bit Netz-ID Subnet-ID Host-ID 11111111111111111111111100000000 Einführung mehrstufiger Hierarchien von Subnetzen mit SN-Masken möglich Größe der Routingtabellen im Backbone wird reduziert, „Aggregation von Routen“ = 255.255.255.0 Seminar VA (04/05) S ( ) Seminar VA (04/05) S ( ) 4 Internet-Adressen und physikalische Adressen Klassenlose Adressierung: Classless Inter-Domain Routing (CIDR) mehr Flexibilität bei der Vergabe von Adressen Die Vergabe Netzwerkadresse ist immer mit einer korrespondierenden 32-Bit-Maske verbunden. – auf 1 gesetzte Bits bestimmen Anzahl der für die Identifikation des Netzwerks reservierten Bits Die Angabe der 32-Bit-Maske erfolgt als Präfixlänge im Zusammenhang mit der Netzwerkadresse. „So kann zum Beispiel das Klasse-B-Netz 128.1.0.0 auch durch eine klassenlose Netzwerkadresse mit einer 32-Bit-Maske von 255.255.0.0 in der Form 128.1.0.0/16 spezifiziert werden.“ Die Verwendung klassenloser Adressen erfordert auch klassenloses Routing. Seminar VA (04/05) S ( ) 5 Problem: – Jeder Rechner (NIC) hat auf dem von ihm benutzten Netzwerk eine physikalische Adresse. (z.B. Ethernet: 48-Bit-Adresse). – Die 32-Bit-Internet-Adressen müssen in physikalische Adressen umgewandelt werden, damit Kommunikation möglich ist. Direkte Abbildung: – Eine Funktion liefert zu einer Internet-Adresse die zugehörige physikalische Adresse: P A = f ( IA ) – Beispiel: Beim proNET-10 Token-Ring-Netz werden kleine Integer als physikalische Adressen verwendet. Seminar VA (04/05) S ( ) ARP-Protokoll-Format ARP Message in einem Ethernet Frame Dynamische Adreßauflösung Idee: Rechner A braucht die Adressumsetzung für Internet-Adresse IB – Der Rechner A schickt ein Broadcast-Paket auf das Netz. Der Rechner mit der Internet-Adresse IB soll seine physikalische Adresse schicken. – Alle Rechner empfangen dieses Paket: Rechner B mit der InternetAdresse IB schickt eine Antwort mit seiner physikalischen Adresse an Rechner A. – Rechner A erhält das Paket und kann jetzt an Rechner B übertragen. ⇒ Dieses Protokoll heißt Address Resolution Protocol (ARP). ARP Message ARP Message Format Hardware HLEN Protocol PLEN Operation Sender HA (Octets 0-3) Sender HA (Octets 4-5) Sender IA (Octets 0-1) Sender IA (Octets 2-3) Target HA (Octets 0-1) Target HA (Octets 2-5) Target IA (Octets 0-3) S ( Seminar VA (04/05) ) Reverse Address Resolution Protocol (RARP) S ( Seminar VA (04/05) ) Umsetzung von 32-Bit-Internet- in 48-Bit-EthernetAdressen ARP - Address Resolution Protocol + Routing im Internet Um beim Hochfahren eines Rechners die Internet-Adresse zu erfahren, gibt es das Reverse Address Resolution Protocol (RARP). RARP funktioniert genauso wie ARP, nur das als Operation RARP-Request (3) steht. Beispiel: Ethernet IP-Adr.: 128.0.0.1 HW-Adr: 080002001234 A ARP-Req. Ethernet ARP-Res. B Netz-Adr.: 128.0.0.0 ARP-Tabelle R 32-Bit-Internet-Adresse IP-Adr.: 128.0.0.254 HW-Adr.: 0800099005678 IP-Adr.: 128.1.0.254 HW-Adr.: 25678ABC5422 RARP Ethernet 48-Bit-Ethernet-Adresse Seminar VA (04/05) IP-Adr.: 128.0.0.2 HW-Adr: E3570007CA2B S ( IP-Adr.: 128.1.0.1 HW-Adr.:07030AC2AB05 ) Netz-Adr.: 128.1.0.0 X Seminar VA (04/05) IP-Adr.: 128.1.0.2 HW-Adr.: 8356A7B62C33 Y S ( ) 40 Gateway-Gateway-Protokolle Erlangung von Routing-Informationen Gateways (Router) leiten IP-Datagramme im Internet weiter. Gateways müssen Routing-Entscheidungen treffen, um IP-Datagramme auf einem gültigen Pfad zum Empfänger zu bringen. Damit Gateways arbeiten können, benötigen sie Statusinformationen über das Internet: – Welche Netzwerke können über welche Pfade erreicht werden ? – Wie ist die Verzögerungscharakteristik verschiedener Pfade ? Um Routing ausführen zu können sind zwei Sachverhalte notwendig: – Routing-Information: • über die Topologie und Verzögerungscharakteristik der Pfade – Routing-Algorithmus: • zum Treffen einer Routing-Entscheidung für jedes Datagramm basierend auf verfügbarer Routing-Information Seminar VA (04/05) S ( ) 41 in autonomen Systemen: – Interior Gateway Protocol (IGP) • zum Austausch von Routing-Informationen zwischen Gateways eines autonomen Systems • Protokoll nur intern, d.h. es kann beliebig (systemspezifisch) sein • Beispielprotokolle: Routing Information Protocol (RIP), Open Shortest Path First (OSPF) zwischen verschiedenen autonomen Systemen: – Exterior Gateway Protocol (EGP) • Austausch geringer Informationsmengen nötig, da nur autonome Systeme vermerkt werden müssen und nicht einzelne Zielsysteme in den autonomen Systemen • offenes Protokoll erforderlich • Beispielprotokolle: Exterior Gateway Protocol (EGP), Border Gateway Protocol (BGP) Seminar VA (04/05) S ( ) 4 ) 44 Zusammenfassung Zeit zum Ausprobieren! ⇒ ICMP, IGMP, ARP/RARP, EGP/IGP Unterstützung bei der Aufgabe des Netzwerkmanagements – Initialisierung von Rechnern und Netzwerken – Initialisierung von Adreßumsetzungstabellen in Hosts – Initialisierung von Routingtabellen in Hosts/Gateways – Aktualisierung von Routingtabellen in Gateways – Generierung von Steuer- und Fehlernachrichten Aufgaben des Netzwerkadministrators: – Festlegen der Subnet Mask – Festlegen der Subnet-Adressen – Zuweisen der Host-ID's – Festlegen der Prefence Level der Gateways – ... Seminar VA (04/05) S ( ) 4 Seminar VA (04/05) S ( Schichtenmodelle und der Internet - Protokollsatz User Datagram Protocol - UDP (Transport Layer, noch mal als Reminder) Übersicht User Prozeß User Prozeß Aufgaben nach ISO/OSI FTP SMTP ... OSI 5 ... 7 Anwendungsschicht UDP OSI 4 Transport Layer • verbindungsorientierte/ verbindungslose Dienste • Zuordnung der Dateneinheiten zu den einzelnen Verbindungen • Flußsteuerung zwischen Sender und Empfänger TCP Transportschicht OSI 3 IGMP ICMP IP ARP IP OSI 1 ... 2 Netzwerkschicht RARP Applikation Application Layer (Anwendungsschicht) • Verteilte Anwendungen und ihre Protokolle Presentation Layer (Darstellung) • Kompatible Datenformate zwischen Applikationen • Interpretation der Information, Kodierung/Dekodierung Session Layer (Sitzungsschicht) • Dialogsteuerung (Dialog = Sitzung) • Koordination von Operationen, Synchronisation des Datentransfers Transport Internet Protokoll Netzwerk Schnittstelle Network Layer • Routing der Pakete durch das Netz • Abrechnungsfunktionalität • Verbindungslose/ verbindungsorientierte Dienste Data Link Layer (Sicherungsschicht) • Einbettung der Rohdaten in Übertragungsrahmen • Erkennen und quittieren der Rahmen • Fehlerbehandlung Physical Layer (Übertragungsschicht) • Übertragung der Bits über eine Kommunikationskanal HardwareSchnittstelle Seminar VA (04/05) S ( ) 45 Motivation: – Beim Internet Protocol (IP) definiert eine Zieladresse einen Rechner. – Es fehlt die Möglichkeit einen bestimmten Benutzer oder Prozeß auf dem Rechner anzusprechen. – Das User Datagram Protocol (UDP) ermöglicht es, zwischen verschiedenen Zielen innerhalb eines Rechners zu unterscheiden. Seminar VA (04/05) S ( ) 4 Protocol-Port-Konzept Die intuitive Lösung als Ziele Prozesse zu nehmen, hat folgende Nachteile: – Prozesse werden dynamisch erzeugt (fork) und vernichtet (exit): Die Absender wissen selten, welcher Prozeß zu einem bestimmten Zeitpunkt existiert oder nicht. – Prozesse sollten ersetzt werden können, ohne daß alle Sender benachrichtigt werden müssen. (Ein Reboot kann alle Prozeßnummern ändern!). – Ziele müssen aufgrund der Dienste (Funktionen), die sie anbieten, identifiziert werden (Z.B. Ziel: Fileserver, egal welcher Prozeß sich dahinter verbirgt). – Prozesse, die mehr als einen Dienst anbieten, müssen entscheiden können, welcher Dienst gewünscht ist. Seminar VA (04/05) S ( ) 4 Anstelle von Prozessen werden abstrakte Zielpunkte, Protocol Ports, verwendet. Das Betriebssystem stellt Mechanismen zur Verfügung, um – Ports festzulegen und – auf Ports zuzugreifen. Die Protokoll-Software innerhalb des Betriebssystems synchronisiert den Zugriff auf einen bestimmten Port: – Pakete, die an den Port gehen werden in eine Warteschlange für den Port gestellt, bis ein Prozeß auf den Port zugreift. – Prozesse, die auf einen Port zugreifen, werden blockiert, bis ein Paket für den Port angekommen ist. Seminar VA (04/05) S ( ) 4 Ausgewählte UDP-Port-Nummern UDP-Port-Nummern Bevor zwei Rechner miteinander kommunizieren können, müssen sie sich auf die entsprechenden Portnummern einigen. Es gibt zwei Möglichkeiten, Port-Nummern zu vergeben: – zentrale Vergabe der Portnummern (universal assignment, well-known port assignment) – dynamisches Zuordnen (dynamic binding) TCP/IP, also auch UDP, verwendet eine Hybridlösung: – einige Port-Nummern werden a priori vergeben (generelle Anwendungsprogramme); – die restlichen Port-Nummern stehen für Benutzerprogramme zur Verfügung. Seminar VA (04/05) S ( ) Zur Kommunikation mit einem fremden Port muß der Sender sowohl – die Internet-Adresse als auch – die Port-Nummer wissen. Rechner B Rechner A Port 2 Netzwerk 7/udp time 37/udp timeserver name 42/udp nameserver tftp 69/udp sunrpc 111/udp who 513/udp talk 517/udp whod S ( ) 50 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 2 1 Length 3 Destination Port Source Port Prozeß B ... UDP Checksum S ( ) UDP Data UDP Header Port 3 Encapsulation In jedem Paket werden Internet-Adresse und Port-Nummer des Empfängers und des Senders angegeben (Antwort einfach möglich). Seminar VA (04/05) echo Port 2 Prozeß B Port 3 Kommentar UDP-Header Prozeß A Prozeß A Port-Nummer Seminar VA (04/05) Port 1 Port 1 4 Service 51 IP Data IP Header Seminar VA (04/05) S ( ) 5