Verteilte Systeme Übung 3 Alexander Ploß Gruppe PVS (Parallele und Verteilte Systeme) Institut für Informatik Westfälische Wilhelms-Universität Münster Sommersemester 2008 3.1 OSI-Referenzmodell Prozess B Prozess A Anwendungsschicht Application Layer Anwendungsprotokoll Anwendungsschicht Application Layer Darstellungsschicht Presentation Layer Darstellungsprotokoll Darstellungsschicht Presentation Layer Sitzungsschicht Session Layer Sitzungsprotokoll Sitzungsschicht Session Layer Transportschicht Transport Layer Transportprotokoll Transportschicht Transport Layer Netzwerkschicht Network Layer Sicherungsschicht Data Link Layer Übertragungsschicht Physical Layer Netzwerk− protokoll Sicherungs− protokoll Übertragungs− protokoll Gateway Netzwerkschicht Network Layer Sicherungsschicht Data Link Layer Übertragungsschicht Physical Layer Netzwerk− protokoll Sicherungs− protokoll Übertragungs− protokoll Netzwerkschicht Network Layer Sicherungsschicht Data Link Layer Übertragungsschicht Physical Layer 3-2 3.1 OSI-Referenzmodell 7 Anwendung (Application Layer) Standardisierte Protokolle für bestimme Anwendungsaufgaben (www, E-Mail, ...) 6 Darstellung (Presentation Layer) Regelung der Informationskodierung 5 Sitzung (Session Layer) Steuerung der Kommunikationssitzung 4 Transport (Transport Layer) Interprozesskommunikation 3 Vermittlung (Network Layer) Adressierung Wegewahl (Routing) Überlastkontrolle Segmentierung/Reassemblierung 2 Sicherung (Data Link Layer) Fehlerkontrolle Zugriffsregelung 1 Bitübertragung (Physical Layer) Übertragung von Bitströmen über ein Medium 3-3 3.2 TCP/IP-Stack Das OSI-Referenzmodell dient vielen verteilten Systemen als Vorlage, aber gerade nicht für das Internet. Dort einfacherer TCP/IP-Stack: 4 Anwendungsschicht (Application Layer) 3 Transportschicht (Transport Layer) 2 Vermittlungsschicht (Network Layer) 1 Netzzugangsschicht (Host to Network) 3-4 Entwickler/User−Space 3.2 TCP/IP-Stack Web−Browser, E−Mail,. Anwendung Andere Anwendungen (erfordern spezielle Optimierung) Appl.−Protokolle: FTP, HTTP, SMTP, ... Andere Anwendungen Middleware: CORBA, RMI Programming Interface (Sockets) Betriebssystem TCP IGMP ICMP RARP ARP UDP Transport RIP IP OSPF Vermittlung Ethernet WLAN ... ATM Netzzugang 3-5 TCP/IP: Ethernet als Netzzugangsschicht B D .. 1 0 0 1 0 .. MAC−Adresse 72:B0:11:2C:00:3C A geteiltes Ethernet−Medium 28:A3:60:43:C2:4B C E Adressierung der Hosts durch 48-bit große MAC-Adresse (Media Access Control) Auflösung der MAC-Adresse zu einer IP-Adresse durch ARP (Address Resolution Protocol) Regelung des Medienzugriffs durch CSMA/CD-Verfahren (Carrier Sense Multiple Access with Collision Detection) (http://www.erg.abdn.ac.uk/users/gorry/course/lan-pages/csma-cd.html) 3-6 TCP/IP: Ethernet als Netzzugangsschicht 0 12 34 56 7 89 01 23 45 67 89 0 12 34 56 78 90 1 Präambel (0−31) Präambel (32−63) Zieladresse (0−31) Zieladresse (32−47) Quelladresse (0−15) 111111111111111111111111 000000000000000000000000 000000000000000000000000 111111111111111111111111 000000000000000000000000 111111111111111111111111 000000000000000000000000 111111111111111111111111 000000000000000000000000 111111111111111111111111 Quelladresse (0−15) Paket−Typ Daten Daten ... Prüfsumme Präambel (1010101...) dient zur Sender-Empfänger-Synchronisierung Maximal 1500 Bytes Nutzdaten pro Frame (Header + Trailer: 18 Byte groß) Mindestgröße eines Frames ist 64 Bytes 1. Vereinfacht Kollisionsbehandlungen 2. Verhindert “späte Kollisionen” Nutzdaten werden aufgefüllt falls kleiner als 46 Bytes 3-7 TCP/IP: Ethernet als Netzzugangsschicht Ab ca. 50 % Auslastung führt der gemeinsame Medienzugriff zur Überlastung ⇒ Switches statt Hubs lösen das Problem durch Punkt-zu-Punkt-Verbindungen Trotzdem: Anzahl der Hosts in einem Netzwerk ist beschränkt ⇒ Internetworking zum Verbinden verschiedener Netze Alternative Implementierungen einer Netzzugangsschicht: Wireless LAN, Zugriffssteuerung durch CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance) CAN Bus (Controller Area Network), eingesetzt im Auto oder anderen störanfälligen Bereichen, Zugriffssteuerung durch CSMA/BA (Carrier Sense Multiple Access with Bitwise Arbitration) Token Ring, ATM, PPP, Frame Relay, ... 3-8 TCP/IP: Vermittlungsschicht Die Vermittlungsschicht verbindet mehrere Netzwerke. Aufgaben: Adressierung Wegewahl (Routing) Kommunikationskontrolle Segmentierung/Reassemblierung 3-9 Vermittlungsschicht: Adressierung Jedes Netzwerkinterface wird durch eindeutige 32-bittige (IPv4) IP-Adresse identifiziert IP-Adresse besteht aus Netzadresse und Hostadresse Früher: Statische Unterteilung von Netz- und Hostadresse durch feste NetzKlassen (RFC 990) Netzklasse A Binär-Format 0xxxxxxx.X.X.X B 10xxxxxx.X.X.X 128.x.x.x - 191.x.x.x C 110xxxxx.X.X.X 192.x.x.x - 223.x.x.x D 1110xxxx.X.X.X 224.x.x.x - 239.x.x.x E 1111xxxx.X.X.X 240.x.x.x - 255.x.x.x Netzklasse Adressbereich 0.x.x.x - 127.x.x.x A Länge Netzadresse 8 Bit Länge Hostadresse 24 Bit Anzahl Netze Hosts/Netz 126 16 777 216 B 16 Bit 16 Bit 16 384 65 534 C 24 Bit 8 Bit 2 097 151 254 3-10 Vermittlungsschicht: Adressierung Einzig heute noch relevant: Klasse D (Multicast) Heute (bzw. 1993 eingeführt): Classless Internet Domain Routing (CIDR) mit Netzmasken Die Maske gibt an, welche Bits zur Netzadresse gehören Beispiel: IP-Adresse 128.176.180.44, Maske 255.255.252.0 Schreibweise: 128.176.180.44/22 Um nur Netzwerke zu adressieren den Hostteil auf “null setzen”: Beispiel: 192.168.0.0/16 3-11 3.2.2 TCP/IP: Vermittlungsschicht 128.176.80.55 A Netzadresse 128.176.80.0/24 128.176.80.1 [...] 1 Netzadresse 128.155.19.0/24 128.155.19.4 128.155.19.1 Ein Router vermittelt zwischen (mindestens) zwei Netzen Routing-Tabellen geben an (in normalen Hosts wie auch in den Routern), über welches Interface ein Paket weitergeleitet werden soll 3-12 3.2.2 TCP/IP: Vermittlungsschicht Beispiel: Routing-Tabelle des Host A Destination 128.176.80.0 127.0.0.0 0.0.0.0 Gateway 0.0.0.0 0.0.0.0 128.176.80.1 Genmask 255.255.255.0 255.0.0.0 0.0.0.0 Iface eth0 lo eth0 Genmask 255.255.255.0 255.0.0.0 255.255.255.0 0.0.0.0 Iface eth0 lo eth1 eth1 Beispiel: Routing-Tabelle des Routers 1 Destination 128.176.80.0 127.0.0.0 128.155.19.0 0.0.0.0 Gateway 0.0.0.0 0.0.0.0 0.0.0.0 128.155.19.1 3-13 Vermittlungsschicht: Wegewahl (Routing) Für den Routing-Vorgang und das Anpassen der Routing-Tabellen (adaptives Routing, z. B. bei Teilnetzausfall) gibt es eine Vielzahl von Mechanismen, z. B.: RIP: Routing Information Protocol (veraltet) OSPF: Open Shortest Path First BGP: Border Gateway Protocol . . . (Vgl. Tanenbaum, Computernetzwerke) Grundsätzlich: “Best effort”-Kommunikation Keine Auslieferungsgarantie Paketreihenfolge kann sich ändern Pakete können auf verschiedenen Routen zum Empfänger gelangen Keine Dienstgüteunterstützung (Quality of Service) 3-14 Vermittlungsschicht: Wegewahl (Routing) Time To Live eines IP-Paketes: TTL-Feld im IP-Header wird durch jeden Router dekrementiert Bei TTL=0 wird das Paket verworfen Schützt vor Routing-Zyklen durch defekte Routen Das TTL-Feld wird auch zum Anzeigen einer Route zu einem Zielhost mit tracepath/traceroute benutzt 3-15 3.2.2 TCP/IP: Vermittlungsschicht tracepath www.heise.de: 1: 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: karlovo (128.176.180.50) C65RRZA-MATHE.UNI-MUENS.. (128.176.180.4) UNIA0010-RZA-0039.UNI-MUENS.. (10.29.3.9) UNIA4019-UNIA0010.UNI-MUENS.. (10.29.1.9) C65RISPA-UNIA.UNI-MUENS.. (192.168.16.65) ..nster1-ge1-0-0.x-win.dfn.de (188.1.49.9) ..ln1-ge8-2.x-win.dfn.de (188.1.18.122) ..nkfurt1-po2-0.x-win.dfn.de (188.1.18.97) ..nkfurt2-po6-0.x-win.dfn.de (188.1.80.66) ...ffm.plusline.net (80.81.192.132) ..de.plusline.net (213.83.57.23) www.heise.de (193.99.144.71) Resume: pmtu 1500 hops 11 back 11 0.125ms pmtu 1500 0.468ms 0.540ms 0.565ms 1.072ms 1.425ms 8.222ms 10.084ms 10.601ms 11.000ms 11.530ms 11.924ms reached 3-16 Vermittlungsschicht: Kommunikationskontrolle Das Internetprotokoll beeinhaltet zwei Protokolle zur Steuerung der Kommunikation: ICMP Internet Control Message Protocol Spezifiziert Steuerungsnachrichten wie Host Unreachable, Fragmentation Needed, DF Set, TTL Exceeded oder Echo Request und Echo Reply (für ping) Im Allgemeinen können ICMP-Nachrichten verschickt werden, müssen aber nicht IGMP Internet Group Management Protocol Spezifiziert Steuerungsnachrichten für Multicast-Kommunikation 3-17 Vermittlungsschicht: Segmentierung/Reassemblierung Die MTU (Maximum Transfer Unit) als maximale Nutzdatengröße eines Frames der Netzzugangsschicht ist üblicherweise kleiner als die eines IP-Paketes (64 kB). Zwei Segmentierungstrategien: 1 Dynamisch durch die Router Jeder Router kennt die MTU der angeschlossenen Netze Beim Routing von grösserer auf kleinerer MTU (z. B. von ATM (4500) auf Ethernet (1500)) teilt der Router zu grosse IP-Pakete auf: IP Header IP Header Datenfragment Daten IP Header Datenfragment IP Header Datenfragment 3-18 Vermittlungsschicht: Segmentierung/Reassemblierung 2 Statisch direkt beim Sender mit Path MTU Discovery (RFC 1191) Ermittelt geringste MTU auf dem kompletten Weg zum Empfänger: A B C D Wähle geeignete Anfangs-MTU und zerlege IP-Pakete entsprechend Setze DF-Bit im IP-Header (Don’t Fragment) Versende Pakete Bei Empfang von ICMP Frag Needed, DF Set Nachricht eines Routers verringere MTU entsprechend und beginne bei A Problem 1: Pakete können auf verschiedenen Routen zu demselben Empfänger ausgeliefert werden. Trotzdem praktikabel, da Routen im Internet meist stabil Problem 2: ICMP-Nachrichten werden mitunter von schlecht konfigurierten Firewalls oder NAT-Routern geblockt Dynamische Segmentierung/Reassemblierung belastet Router, deswegen wird üblicherweise die Segmentierung am Sender vorgenommen. 3-19 Vermittlungsschicht: IP-Header 0 1234 567 89 01 234 567 8901 234 5678 9 01 Version HLänge Diensttyp Fragmentidentifizierung TTL Gesamtlänge (Bytes) Flags Protokoll Fragmentadresse Kopfprüfsumme Quelladresse Zieladresse Optionen Füllbyte Daten . . . 3-20 Vermittlungsschicht: IPv6 Substantielles Redesign von IP Erweiterte und verbesserte Funktionalität Übernahme erfolgreicher Konzepte von IPv4 Neue Eigenschaften Adressen 128 Bit groß, hexadezimale Notation, Bsp: 2a75:5db0:85a3:08d3:1079:6b2e:0363:7a04 Path MTU Discovery fest vorgeschrieben, Router segmentieren nicht Adressauflösung und Gruppenmanagement Teil von ICMPv6, ARP und IGMP entfernt Neue Headerstruktur, jetzt über optionale Header erweiterbar Dienstgüteunterstützung (Quality of Service) Beeinhaltet IPsec als Protokoll für Verschlüsselung und Authentifizierung auf dem Network-Layer 3-21 Linux/BSDs: Netzwerkinformationen Anzeigen von Information und steuern des TCP/IP Stacks: Iproute2,ip(8) Anzeigen von Adressen: ip address show Anzeigen von Routing-Tabellen: ip route show Anzeigen des ARP-Caches: ip neighbour show Weitere tools (iputils) Route eines Pakets verfolgen: traceroute oder tracepath Well-known ports: /etc/services Weiterführende Online Referenz: http://www.tcpipguide.com/free/index.htm 3-22 TCP/IP: Transportschicht Aufgabe der Transportschicht: Datentransport zwischen Prozessen Zwei Transportprotokolle im TCP/IP-Stack: UDP - User Datagram Protocol Unzuverlässige Kommunikation, kein Verbergen der zugrundeliegenden IP-Unzuverlässigkeiten Protokollentwickler muss selbst Mechanismen zu Erreichen der gewünschten Zuverlässigleit implementieren TCP - Transmission Control Protocol Expliziter Verbindungsaufbau Erhält Absendereihenfolge von Daten Liefert Daten garantiert aus Welches Protokoll man einsetzt hängt von der Anwendung ab 3-23 Transportschicht: UDP-Header 0 1234 567 89 01 234 567 8901 234 5678 9 01 Quell−Port Ziel−Port Länge Prüfsumme Daten . . . 3-24 Transportschicht: TCP-Header 0 12 34 56 7 89 01 23 45 67 89 0 12 34 56 78 90 1 Quell−Port Ziel−Port Sequenznummer Bestätigungsnummer Offset nicht verw. 1 2 3 4 5 6 Prüfsumme Fenster Dringlich Optionen Füllbytes Daten . . . 1 URG 2 ACK 3 PSH 4 RST 5 SYN 6 FIN 3-25 Transportschicht: TCP-Zustandsautomat CLOSED EINGABE/AUSGABE (Anwendungsbefehlle) (passive open)/ (active open)/SYN timeout/RST LISTEN SYN/SYN,ACK (send data)/SYN RST/ (close) SYN/SYN,ACK SYN RECVD timeout SYN,ACK/ACK ACK/ ESTABLISHED (close)/FIN SYN SENT FIN/ACK CLOSE WAIT (close)/FIN (close)/FIN FIN WAIT−1 FIN/ACK CLOSING LAST ACK ACK/ FIN WAIT−2 FIN,ACK/ACK FIN/ACK ACK/ ACK/ TIME WAIT timeout 3-26 Transportschicht: TCP-Verbindungsaufbau 3-way handshake“: ” (active open) CLOSED SYN−SENT SEQ=100 CTL=SYN CLOSED LISTEN (passive open) ESTABLISHED SEQ=300 ACK=101 CTL=SYN,ACK SYN−RECVD SEQ=101 ACK=301 CTL=ACK DATA ESTABLISHED 3-27