Betriebssysteme Übung 6 Martin Alt Gruppe PVS Institut für Informatik Betriebssysteme 2004 · Übung 6 1 Hinweise zum Übungsblatt • Fehler auf dem Aufgabenblatt: − finalize_process → process_wrapper − append_queue → append − Funktion main in process_manager.c darf (und muss) verändert werden. • Hinweise zur Abgabe: − Bei E-Mail Abgabe wird künftig eine automatische Eingangsbestätigung verschickt – wenn das richtige Subject angegeben ist ([BS] Abgabe Uebung x) − Nachfragen weil keine Bestätigung wg. falschen Subjects führen zu Punktabzug − Verzeichnisstruktur beibehalten! − Dateien nicht umbenennen! Betriebssysteme 2004 · Übung 6 2 Netzwerkkommunikation • Kommunikationsablauf wird durch Protokolle festgelegt • Internet Standards sind in sog. „Requests for Comments (RFC)“ beschrieben http://www.rfc-editor.org/rfc.html • TCP/IP − RFC 791: IP − RFC 792: ICMP − RFC 793: TCP − RFC 768: UDP − RFC 826: ARP • Protokolle und Netzwerk-Code sind schichtweise aufgebaut Betriebssysteme 2004 · Übung 6 3 ISO OSI Schichtenmodell 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 Betriebssysteme 2004 · Übung 6 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 4 TCP/IP • TCP/IP: „Internet Protokolle“ • Vier Schichten: Application Layer Transport Layer Application Layer TCP Network Layer UDP IP ICMP Network Interface (z.B. Ethernet) Link Layer (1&2) • Darstellungsschicht: Umwandlung von Host- in Network-Byteorder • Im folgenden betrachten wir ausschließlich TCP/IP/Ethernet Betriebssysteme 2004 · Übung 6 5 Protokolldaten • Protokolldaten (Kopf, header )jeder Schicht werden von der darunterliegenden Schicht als Daten betrachtet • Beim Empfangen werden Protokolldaten niedriger Schichten sukzessive entfernt Empfangen Senden Nutzdaten ETHERNET HTTP Nutzdaten TCP HTTP Nutzdaten IP TCP HTTP Nutzdaten IP TCP HTTP Nutzdaten Betriebssysteme 2004 · Übung 6 6 Network Interface Level: Ethernet • Entwickelt von Xerox PARC ab ca. 1970 • CMSA/CD (Carrier Sense Multiple Access with Collision Detection) • Bus-basiertes System • Pakete mit 46–1522 Byte Nutzinformation 0 1 2 3 4 5 6 7 8 901234 567890123456789 01 Präambel (0−31) Präambel (32−63) Zieladresse (0−31) Zieladresse (32−47) Quelladresse (0−15) Quelladresse (0−15) Paket−Typ Daten Daten ... Prüfsumme Betriebssysteme 2004 · Übung 6 7 Internet Protocol (IP) • Zahl der Rechner an einem Ethernet Netzwerk ist begrenzt (Kollisionen) • Internet Protokoll dient zum Zusammenschluss mehrerer Netzwerke (nicht nur Ethernet) • Paketorientiertes Protokoll: − Längere Nachrichten werden in Pakete zerlegt die einzeln verschickt werden • Pakete können weiter unterteilt werden, falls sie zu groß für ein bestimmtes Netzwerk sind (Fragmentierung) • Nicht zuverlässige Übertragung: − Pakete können verlorengehen − Pakete können mehrfach ankommen − Pakete können sich gegenseitig überholen Betriebssysteme 2004 · Übung 6 8 IP-Adresse • Jedem Netzwerk Interface wird eine netzweit eindeutige Adresse (32 Bit) zugeordnet • Unterteilt in Netzadresse und Knotenadresse − Früher: feste Einteilung in Klassen: Klasse A: 8 Bit Netzwerk, 24 Bit Knoten Klasse B: 16 Bit Netzwerk, 16 Bit Knoten Klasse C: 24 Bit Netzwerk, 8 Bit Knoten − Modernere Variante: Netzmasken Geben an welche Bits zur Netzadresse gehören − Beispiel: 128.176.180.46 Maske: 255.255.252.0 − Andere Schreibweise: 128.176.180.46/22 • Benennung von Netzwerken: Knotenteil der Adresse ist 0, z. B. 192.168.0.0/16 • Unterteilung in Netz- und Hostteil wichtig für Routing Betriebssysteme 2004 · Übung 6 9 IP-Routing • Problem: Woher weiß ein Rechner wohin ein IP-Paket verschickt werden soll? • BS unterhält Routing-Tabelle die angibt, über welches Netzwerk-Interface Rechner zu erreichen sind • Beispiel: Destination 128.176.180.0 127.0.0.0 0.0.0.0 Gateway 0.0.0.0 0.0.0.0 128.176.180.1 Genmask 255.255.252.0 255.0.0.0 0.0.0.0 Iface eth0 lo eth0 • BS führt Routing auf Grund der Routing-Tabelle durch; anpassen der Tabelle ist Sache des Benutzers bzw. eines speziellen Programms Betriebssysteme 2004 · Übung 6 10 IP-Routing II • Zwei Arten von Einträgen: lokale und nicht lokale Routen • Lokale Routen: Paket kann über angegebene Netzwerkschnittstelle direkt an den Empfänger versandt werden • Nicht lokale Routen: Empfänger befindet sich in einem anderen Netz, Paket kann nur an Gateway verschickt werden • Gateways (Router) sind Rechner die an mehrere Netzwerke angeschlossen sind und Pakete weiterleiten Betriebssysteme 2004 · Übung 6 11 IP-Routing – Beispiel • Weg von Rechner hisar.uni-muenster.de nach www.heise.de 1: 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: hisar.uni-muenster.de (128.176.180.46) C65RRZA-MATHE.UNI-MUENSTER.DE (128.176.180.4) C65UNIA-C65RRZA.UNI-MUENSTER.DE (192.168.18.1) C65RISPA-UNIA.UNI-MUENSTER.DE (192.168.16.65) ar-essen4-ge0-1-201.g-win.dfn.de (188.1.44.41) cr-essen1-ge4-0.g-win.dfn.de (188.1.86.1) cr-leipzig1-po11-0.g-win.dfn.de (188.1.18.106) cr-frankfurt1-po10-0.g-win.dfn.de (188.1.18.189) ir-frankfurt2-po4-0.g-win.dfn.de (188.1.80.46) de-cix.ffm.plusline.net (80.81.192.132) c22.f.de.plusline.net (213.83.57.23) www.heise.de (193.99.144.71) Betriebssysteme 2004 · Übung 6 12 Routing: G-WiN Quelle: DFN http://www.dfn.de/uploaded/DFN-Aufbau-GWiN.pdf Betriebssysteme 2004 · Übung 6 13 IP-Pakete 0 123 4 567 8 90 12 34 56 78 90 12 3 456 7 8901 Version KLänge Diensttyp Fragmentidentifizierung TTL Gesamtlänge (Bytes) Flags Protokoll Fragmentadresse Kopfprüfsumme Quelladresse Zieladresse Optionen Füllbyte Daten . . . Betriebssysteme 2004 · Übung 6 14 ARP: Adressauflösung • Routing Tabelle liefert IP-Adresse des nächsten Empfängers • Wie werden IP-Adressen in Ethernet Adressen umgesetzt? • ARP (Address Resolution Protocol): − Sender schickt ein ARP Paket mit der IP Adresse des gesuchten Rechners (Empfänger oder Gateway) per Broadcast an alle Rechner im lokalen Netz − Der gesuchte Rechner antwortet und teilt dem Sender seine Ethernet-Adresse mit − Erhaltene Adressen werden in einer Tabelle zwischengespeichert Betriebssysteme 2004 · Übung 6 15 ARP-Paketformat 01 2 34 5 6 78 90 1234567890123456789 01 Hardwaretyp (Ethernet) HWAdresslange Protokolltyp (IP) Operation (Request/Reply) Protok’adresslange Quelladresse (Ethernet) Quelladresse (Ethernet) Quelladresse (IP) Zieladresse (Ethernet) Zieladresse (Ethernet) Zieladresse (IP) • ARP-Einträge anzeigen: arp(8) • Beispiel: sklavenhaendler (128.176.180.202) at 00:03:BA:81:74:D9 [ether] on eth0 alibaba (128.176.180.30) at 00:03:BA:02:E9:0C [ether] on eth0 denethor (128.176.180.180) at 00:03:BA:49:B3:77 [ether] on eth0 bei-gertrud (128.176.180.182) at 00:03:BA:27:04:93 [ether] on eth0 HSRP-MATHE.UNI-MUENSTER.DE (128.176.180.1) at 00:D0:04:48:FF:FC [ether] on eth Betriebssysteme 2004 · Übung 6 16 Internet Control Message Protocol (ICMP) • ICMP dient im wesentlichen zur Fehlerbehandlung (z. B. host unreachable) • In der Regeln nicht von der Anwendung sondern vom Netzwerk-Code des BS verschickt und empfangen • Sammlung unterschiedlicher Paketformate, je nach Art der Meldung • ICMP-Pakete werden Nutzdaten in normalen IP-Paketen verschickt • Wichtige ICMP-Nachrichten: − Destination Unreachable − Time Exceeded − Source Quench − Redirect − Echo, Echo Reply • Im Allgemeinen können ICMP-Nachrichten verschickt werden, müssen aber nicht Betriebssysteme 2004 · Übung 6 17 UDP • IP erlaubt die Adressierung von Rechnern über Netzgrenzen hinweg • Es fehlt die Adressierung einzelner Prozesse (genauer: Sockets) innerhalb eines Rechners −→ Transportprotokoll • User Datagram Protocol (UDP): Einfaches TCP/IP Transportprotokoll • Effizient aber nicht zuverlässig • Einzige Erweiterung gegenüber IP: Ports − Ports identifizieren Kommunikationsendpunkte innerhalb eines Rechners (Sockets) − Ermöglicht dem BS eingehende Pakete Sockets zuzuordnen − Eine Reihe von Port-Nummern sind per RFC standardisiert (well-known ports), z. B. Port 80/tcp: HTTP • Ein Socket wird eindeutig identifiziert durch das Tupel (IP-Adresse, Protokoll, Port) Betriebssysteme 2004 · Übung 6 18 UDP-Paket 0 123 4 567 8 90 12 34 56 78 90 12 3 456 7 8901 Quell−Port Ziel−Port Länge Prüfsumme Daten . . . Betriebssysteme 2004 · Übung 6 19 Transmission Control Protocol (TCP) • TCP: Verbindungsorientiertes Transportprotokoll − Zuverlässige Datenübertragung − FIFO Eigenschaft (Daten werden in Absendereihenfolge empfangen) − Datenflußkontrolle • Verbindung ist „stromorientiert“: Anwendung sieht einen zusammenhängenden Datenstrom, keine Pakete • Fragmentierung in IP-Paket vor der Anwendung verborgen • Expliziter Verbindungsaufbau (Synchronisation, SYN) und -abbau (FIN) Betriebssysteme 2004 · Übung 6 20 TCP: Zustandsautomat CLOSED EINGABE/AUSGABE (Anwendungsbefehlle) (passive open)/ (active open)/SYN timeout/RST LISTEN SYN/SYN,ACK (send data)/SYN RST/ SYN/SYN,ACK SYN RECVD SYN SENT timeout SYN,ACK/ACK ACK/ ESTABLISHED (close)/FIN (close) FIN/ACK CLOSE WAIT (close)/FIN (close)/FIN FIN WAIT−1 FIN/ACK CLOSING LAST ACK FIN,ACK/ACK ACK/ FIN WAIT−2 ACK/ ACK/ FIN/ACK TIME WAIT timeout Betriebssysteme 2004 · Übung 6 21 TCP-Paket 0 12 34 5 6 7 8 9 0 1 2 3 45 6 7 8 9 01 2 3 4 56 7 8 90 1 Quell−Port Ziel−Port Sequenznummer Bestätigungsnummer Offset 1 2 3 4 5 6 nicht verw. Prüfsumme Fenster Dringlich Optionen Füllbytes Daten . . . 1 URG 2 ACK 3 PSH 4 RST 5 SYN 6 FIN • Fenster: Gibt an bis zu welcher Sequenznummer der Empfänger bereit ist Pakete zu empfangen (Flusskontrolle) • Dringlich: Zusätzlich zum normalen Datenstrom kann ein zweiter Strom mit höherer Priorität verwendet werden Betriebssysteme 2004 · Übung 6 22 TCP: Verbindungsaufbau „3-way handshake“: (active open) CLOSED SYN−SENT SEQ=100 CTL=SYN ESTABLISHED SEQ=300 ACK=100 CTL=SYN,ACK CLOSED LISTEN (passive open) SEQ=101 ACK=300 CTL=ACK SYN−RECVD SEQ=102 ACK=300 CTL=ACK DATA ESTABLISHED Betriebssysteme 2004 · Übung 6 23 Anwendungsprotokolle TCP/IP bildet die Basis für Anwendungsprotokolle: • Domain Name System: Umsetzung von Namen in IP-Adressen • Hypertext Transfer Protocol (HTTP): Web-Seiten • File Transfer Protocol (FTP) • Simple Mail Transfer Protocol (SMTP) • Telnet • ... Betriebssysteme 2004 · Übung 6 24 Beispiel: Webseite lesen Was passiert wenn man von hisar.uni-muenster.de eine TCP-Verbindung mit www.uni-muenster.de aufbaut? 1. IP-Adresse zu www.uni-muenster.de herausfinden • DNS-Server kontaktieren; liefert 128.176.188.115 2. Geeignete Route bestimmen • Routingtabelle enthält keinen Eintrag für 128.176.188.115 • Default Eintrag verwenden: Gateway: 128.176.180.1 Interface: eth0 3. Ethernet-Adresse des Gateways bestimmen • ARP Paket mit Adresse 128.176.188.115 an alle Rechner im lokalen Ethernet schicken • Gateway antwortet mit IP-Adresse Betriebssysteme 2004 · Übung 6 25 Beispiel: Webseite lesen II 4. TCP-Verbindung aufbauen zum korrekten Port (z. B. Port 80) • IP-Pakete werden an Gateway verschickt • Dieser leitete die Pakete an den nächsten Rechner weiter • Antwort-Pakete kommen ebenfalls über Gateway 5. Anfrage senden: • HTTP-GET Kommando • Per TCP senden → wird in TCP-Pakete verpackt • TCP-Pakete werden in IP, diese in Ethernet-Pakete verpackt 6. Server antwortet mit angeforderter Datei 7. Nach Ende der Kommunikation Verbindung beenden Betriebssysteme 2004 · Übung 6 26 Linux/BSDs: Netzwerkinformationen • Anzeigen von Informationen zu Netzwerk Schnittstellen (nicht auf Ethernet begrenzt): ifconfig • Anzeigen von Routing-Tabellen: netstat -nr • Route eines Pakets verfolgen: traceroute oder tracepath • Anzeigen des ARP-Caches: arp -a • Well-known ports: /etc/services Betriebssysteme 2004 · Übung 6 27