Einführung in die Funktionsweise von Computersystemen Einführung in die Funktionsweise von Computersystemen 8 Wintersemester 2016/2017 Netze Einführung in die Funktionsweise von Computersystemen ▶ Bisher: Vorwiegend lokale Kommunikation und lokale Aufgaben zu lösen (Prozessinteraktion) ▶ Aufgaben können aber auch die Kommunikation zu entfernten Rechner erfordern 8. Kapitel Über die Grenze: Rechner in Netzwerken ▶ Übertragung von Daten (e-Mail, WWW) ▶ Nutzung entfernter Rechenkapazitäten ▶ Abstraktion vom Ort ➡ Verbindung durch Netzwerke ▶ Prof. Matthias Werner 8Professur Betriebssysteme Sichtweisen ▶ Computer sind durch Kommunikationesnetze verbunden ▶ Computer sind Knoten innerhalb eines Netzes 212 WS 2016/2017 • M. Werner Einführung in die Funktionsweise von Computersystemen http://osg.informatik.tu-chemnitz.de Einführung in die Funktionsweise von Computersystemen 8 Kriterien für Netzwerke ▶ ▶ ▶ 8 Topologien Geschwindigkeitsparameter: Latenz und Durchsatz Latenz (Verzögerung, latency): Zeit, die eine leere Nachricht braucht, um vom Sender zum Empfänger zu gelangen; Zeit zur Etablierung einer Verbindung Linie Ring Stern Baum Bus Durchsatz (Übertragungsrate, transfer rate): Geschwindigkeit, mit der Daten übertragen werden, sobald eine Verbindung etabliert ist Nachrichtenübertragungszeit = Latenz + Nachrichtenlänge/Durchsatz ▶ vollständige Vernetzung Außer der Geschwindigkeit ist vor allem die Zuverlässigkeit einer Kommunikation und die räumliche Ausdehnung wesentlich ▶ WS 2016/2017 • M. Werner 213 http://osg.informatik.tu-chemnitz.de Auch irreguläre Strukturen oder Vermischungen dieser Topologien sind üblich WS 2016/2017 • M. Werner 214 http://osg.informatik.tu-chemnitz.de Einführung in die Funktionsweise von Computersystemen Einführung in die Funktionsweise von Computersystemen 8 Verbindungsarten ▶ ▶ ▶ ▶ 8 Schichtenmodelle Beim Datentransport wird verbindungsorientierte und verbindungslose Kommunikation unterschieden ▶ In hierarchischen Architekturen lassen sich Hierarchieebenen mit unterschiedlichen Funktionen identifizieren ➡(Dienst-)Schichten ▶ Jede Schicht Verbindungsorientiert (connection-oriented): Ein virtueller Kanal wird zwischen Sender und Empfänger aufgebaut, der zur Übermittlung von Datenströmen genutzt wird Verbindungslos (connection-less): Jede einzelne Nachricht (Datagramm) wird zu einem bestimmten Ziel geschickt Beispiele aus lokaler IPC ▶ UNIX-Messages sind verbindungslos ▶ Pipes sind verbindungsorientiert ▶ 215 WS 2016/2017 • M. Werner http://osg.informatik.tu-chemnitz.de ▶ hat bestimmten Zweck und Funktion ▶ bietet den jeweils höheren Schichten Dienste an ▶ besitzt Schnittstelle zum Zugriff auf angebotene Dienste ▶ abstrahiert von Details der Implementierung ▶ nutzt Dienste tieferer Schichten zur Funktionserbringung Ziel: Reduzierung der Komplexität 216 WS 2016/2017 • M. Werner Einführung in die Funktionsweise von Computersystemen http://osg.informatik.tu-chemnitz.de Einführung in die Funktionsweise von Computersystemen 8 Protokollhierarchien Schicht 3 8 Architekturbeispiel Schicht 3-Protokoll Philosoph/ÜbersetzerIn/SekretärIn-Architektur Schicht 3 Nachricht Deutsch Ich mag Kaninchen. Information für entfernte Übersetzerin Fax # ----Deutsch Ich mag Kaninchen. Information für entfernten Sekretär Philosoph J‘aime les lapins. Schicht 2/3- Schnittstelle Schicht 2/3- Schnittstelle Schicht 2 Schicht 2-Protokoll Schicht 2 Schicht 1/2- Schnittstelle Schicht 1/2- Schnittstelle Schicht 1 Schicht 1-Protokoll 217 Übersetzerin Deutsch Ich mag Kaninchen. Schicht 1 Physikalisches Medium (Schicht 0) WS 2016/2017 • M. Werner I like rabbits. http://osg.informatik.tu-chemnitz.de WS 2016/2017 • M. Werner Sekretär 218 Fax # ----Deutsch Ich mag Kaninchen. http://osg.informatik.tu-chemnitz.de Einführung in die Funktionsweise von Computersystemen Einführung in die Funktionsweise von Computersystemen 8 Protokoll ▶ 8 Informationsfluss Ein Protokoll legt die Regeln und Konventionen fest, wie die Schicht n der Maschine A mit Schicht n der Maschine B kommuniziert M ▶ Beim Senden leitet jede Schicht die Daten an die unterliegende Schicht weiter, bis die physikalische Schicht erreicht ist ▶ In jeder Schicht können die Daten transformiert (z.B. aufgeteilt) sowie zusätzliche Informationen (z.B. Header, Trailer) hinzugefügt werden ▶ Der Empfang erfolgt entsprechend umgekehrt ▶ Eine Protokollhierarchie nennt man auch Protocol Stack H2 H1 219 WS 2016/2017 • M. Werner H3 http://osg.informatik.tu-chemnitz.de H3 H2 M M1 H3 M1 H2 H1 M2 H2 H3 H2 M2 H1 H3 H2 M M1 H3 220 WS 2016/2017 • M. Werner Einführung in die Funktionsweise von Computersystemen M M: Gesamte Nachricht Mi: Teilnachricht i Hi: Header der Schicht i M1 H2 H1 M2 H2 M2 http://osg.informatik.tu-chemnitz.de Einführung in die Funktionsweise von Computersystemen 8 TCP/IP-Referenzmodell ▶ 8 Schichten des TCP/IP-Referenzmodels Schichtenmodell mit vier Schichten ▶ Host-an-Netz ▶ Verarbeitung Verarbeitung ▶ Anwendung ▶ Internet Internet Internet ▶ Transport Transport Betriebssystem ▶ Transport ▶ Ermöglicht die Kommunikation zwischen Anwendungen ▶ Zwei bekannte Protokolle http://osg.informatik.tu-chemnitz.de TCP ermöglicht zuverlässige, verbindungsorientierte Kommunikation auf Basis von Byteströmen UDP ermöglicht unzuverlässige, verbindungslose Kommunikation auf Basis von Nutzdatenpaketen Verarbeitung ▶ 221 Ende-zu-Ende senden und empfangen einzelner Pakete zwischen miteinander kommunizierenden Rechnern • • Host-an-Netz Host-an-Netz WS 2016/2017 • M. Werner Senden, weiterleiten und empfangen einzelner Pakete zwischen direkt miteinander kommunizierenden Rechnern Stellt Applikationsprotokolle wie HTTP, FTP oder SMTP zur Verfügung WS 2016/2017 • M. Werner 222 http://osg.informatik.tu-chemnitz.de Einführung in die Funktionsweise von Computersystemen Einführung in die Funktionsweise von Computersystemen 8 TCP/IP-Referenzmodell ▶ 8 TCP/IP-Referenzmodell Endsysteme und Router ▶ Verarbeitung Verarbeitung Transport Transport Internet Internet Internet Host-an-Netz Host-an-Netz Host-an-Netz Protokolle (Beispiele) Telnet FTP SMTP DNS TCP UDP ICMP ARPANET HTTP SATNET Transport IGMP IP Funk Verarbeitung LAN Internet Host-an-Netz Gateway (Router) 223 WS 2016/2017 • M. Werner http://osg.informatik.tu-chemnitz.de 224 WS 2016/2017 • M. Werner Einführung in die Funktionsweise von Computersystemen http://osg.informatik.tu-chemnitz.de Einführung in die Funktionsweise von Computersystemen 8 OSI-Referenzmodell Die Schichten des OSI-Referenzmodells ▶ OSI = Open Systems Interconnection ▶ Schichtenmodell mit sieben Schichten WS 2016/2017 • M. Werner 8 ▶ Bitübertragung (engl.: Physical) ▶ 7 7 Anwendung 6 6 Darstellung 5 5 Sitzungssteuerung 4 4 Transport 3 3 3 Vermittlung 2 2 2 Sicherung 1 1 1 Bitübertragung 225 http://osg.informatik.tu-chemnitz.de ▶ Sicherung (engl.: Data Link) ▶ ▶ Sicherung der zu übertragenen Daten durch Aufteilung in Rahmen, Checksummen und Bestätigungen; Flusskontrolle Vermittlung (engl.: Network) ▶ ▶ Übertragung ungesicherter Bitströme über den Kommunikationskanal Annehmen und Zustellen einzelner Pakete Transport (engl.: Transport) ▶ Entgegennehmen der Daten ▶ Aufteilung in Pakete für die Vermittlungsschicht ▶ Abliefern der vollständigen und korrekten Daten WS 2016/2017 • M. Werner 226 http://osg.informatik.tu-chemnitz.de Einführung in die Funktionsweise von Computersystemen Einführung in die Funktionsweise von Computersystemen 8 Die Schichten des OSI-Referenzmodells ▶ ▶ 8 Internet- vs. OSI-Referenzmodell Sitzungssteuerung (engl.: Session) ▶ Synchronisation der Kommunikationspartner ▶ Checkpointing bei langen Übertragungen Darstellung (engl.: Presentation) ▶ TCP/IP OSI Verarbeitung Anwendung Darstellung Legt die Syntax und die Semantik der zu übertragenden Daten fest (Datenrepräsentation) Sitzung ▶ Anwendung (engl.: Application) ▶ Stellt Applikationsprotokolle wie HTTP, FTP oder SMTP zur Verfügung Transport Transport Internet Vermittlung Sicherung Host-an-Netz 227 WS 2016/2017 • M. Werner http://osg.informatik.tu-chemnitz.de 228 WS 2016/2017 • M. Werner Einführung in die Funktionsweise von Computersystemen Bitübertragung http://osg.informatik.tu-chemnitz.de Einführung in die Funktionsweise von Computersystemen 8 Vergleich der Referenzmodelle J „Bottom-up“-Entwicklung getrieben aus der Praxis J Einfachheit statt Universalität J Nur verbindungsloses Vermittlungsprotokoll L L Beispiel für Protokol-Stack-Abarbeitung OSI TCP/IP L 8 ▶ Zähe „top-down“-Entwicklung mit wenig Bezug zur Praxis Beispiel soll Zusammenspiel der Protokollschichten verdeutlichen ▶ Einige der Protokolle werden später ausführlicher erklärt ▶ Nur Auswahl, in der Praxis spielen noch mehr Protokolle mit J Klar strukturiert und konzeptionell umfassend L Ineffiziente Verarbeitung ▶ Schwächen im Modell und in der Ebenenstruktur L Aufwendige, komplexe Implementierung Was geschieht nach einem Maus-Klick im WWW? ▶ Keine klare Trennung zwischen "Dienst", "Schnittstelle", "Protokoll" L Redundante Funktionen Browser (Firefox, Internet Explorer, Opera, etc.) kann HTML-Dokumente darstellen L Schlechtes Timing der Standardisierung Modell Protokolle WS 2016/2017 • M. Werner D C Modell Protokolle 229 C D http://osg.informatik.tu-chemnitz.de ▶ Dokumente können lokal oder entfernt liegen ▶ Betrachten Protokolle bei entfernten Aufruf WS 2016/2017 • M. Werner http://osg.informatik.tu-chemnitz.de/lehre/gau 230 http://osg.informatik.tu-chemnitz.de Einführung in die Funktionsweise von Computersystemen Einführung in die Funktionsweise von Computersystemen 8 Anwendungsschicht Domainnamen und DNS ▶ Das erste Protokoll der Anwendungsschicht ist das Hypertext Transfer Protocol (http) ▶ http ist das gemeinsame Protokoll (Anwendungsprotokoll) zwischen dem Webbrowser und dem Webserver (Programm, das z.B. HTML-Seiten zur Verfügung stellt.) ▶ HTTP ist nicht HTML! ▶ HTTP enthält Befehle wie GET, PUT, HEADER, OPTIONS ▶ Bsp.: Mit Hilfe von GET sagt der Browser dem Server, dass er bestimmte Daten haben möchte ▶ Welcher Server? ▶ Browser wendet sich an den DNS und gibt ihm die Adresse aus dem URL http://osg.informatik.tu-chemnitz.de/ 231 WS 2016/2017 • M. Werner 8 ▶ Domainnamen, wie http://osg.informatik.tu-chemnitz.de spiegeln für Menschen verständliche logische Organisationsstrukturen dar, die mit der physischen Wirklichkeit nichts zu tun haben (müssen) ▶ Der Dienst DNS (Domain Name Service) wandelt die Domainnamen in IP-Adressen ▶ DNS nutzt seinerseits TCP/IP ▶ Die IP-Adresse eines DNS-Servers muss bekannt sein http://osg.informatik.tu-chemnitz.de 232 WS 2016/2017 • M. Werner Einführung in die Funktionsweise von Computersystemen http://osg.informatik.tu-chemnitz.de Einführung in die Funktionsweise von Computersystemen 8 IP-Adressen ▶ ▶ ▶ Vergabe (wie auch von Domainnamen) durch das NIC (Network Information Centre) ▶ ▶ Schreibweise: vier 8-Bit-Dezimalzahlen durch Punkt getrennt, z.B.: 134.109.193.2 IPv6: 128 Bit • ▶ • • Schreibweise: acht 16-Bit-Hexadezimalzahlen durch Doppelpunkt getrennt, z.B: 2001:0db8:85a3:08d3:1319:8a2e:0370:7344 Die IP-Adresse wird in den unterliegenden Protokollschichten benutzt WS 2016/2017 • M. Werner Das TCP/IP-Modell kennt zwei Protokolle für den Transport: • • IPv4: 32 Bit • Mit der korrekten IP-Adresse wendet sich der Browser an die Transportschicht ▶ IP-Adresse ist Gruppe von Nummern: ▶ ▶ Transportschicht Eine IP-Adresse ist internetweit eindeutig ▶ 8 233 ▶ http://osg.informatik.tu-chemnitz.de UDP - User Datagram Protocol: verbindungsloses Protokoll, garantiert nichts, weniger aufwendig wird genutzt von Anwendungen/Protokollen, bei denen die Zuverlässigkeit auf höherer Ebene gesichert wird, z.B. rwho, tftp TCP - Transport Control Protocol: zuverlässiges verbindungsorientiertes Protokoll wird z.B. genutzt von ftp, telnet, http ... TCP übernimmt den Aufbau der virtuellen Verbindung zum Server, formt IP-Pakete (Datagramme), überprüft auf Fehler und nimmt ggf. eine Fehlerkorrektur (erneutes Senden) vor WS 2016/2017 • M. Werner 234 http://osg.informatik.tu-chemnitz.de Einführung in die Funktionsweise von Computersystemen Einführung in die Funktionsweise von Computersystemen 8 Vermittlungsschicht: Internet Protokoll ▶ ▶ ▶ 8 Routing (I) Das Internet Protokoll (IP) ist in erster Linie für den Transport von Daten zwischen verschiedenen Netzwerken zuständig ▶ ▶ IP-Zieladresse eines Pakets lesen ▶ Network point of attachment (NPA) Adresse des Zielrechners oder nächsten IP hat folgende Aufgaben: ▶ Zerlegen eines Datagramms, um die maximal zulässige Paketgröße eines Netzwerks zu erreichen ▶ Finden eines Weges zum Ziel (Routing) Gateways anhand von Routingtabellen ermitteln ▶ 235 Für das Routing wird das IN als eine Menge von autonomen Systemen angesehen, die an das core backbone network angeschlossen sind ▶ Innerhalb eines autonomen Systemes wird ein interior gateway protocol benutzt (IGP), außerhalb das exterior gateway protocol (EGP) IP greift dabei auf eine Reihe weiterer Protokolle zurück, die auch von Netzwerk zu Netzwerk verschieden sein können WS 2016/2017 • M. Werner IP Routing erfolgt in zwei Schritten: ▶ Es gibt im Internet verschiedene IGP ▶ Verbreitete IGPs: RIP (routing information protocol) und hello ▶ Für die Adressauflösung nutzt IP das ARP (address resolution protocol) http://osg.informatik.tu-chemnitz.de WS 2016/2017 • M. Werner Einführung in die Funktionsweise von Computersystemen 236 http://osg.informatik.tu-chemnitz.de Einführung in die Funktionsweise von Computersystemen 8 Routing (II) WS 2016/2017 • M. Werner 8 Gateway und Protokollkonverter 237 http://osg.informatik.tu-chemnitz.de ▶ Da innerhalb der einzelnen Netze verschiedene Protokolle und Darstellungen benutzt werden, müssen bestimmte Geräte die Umsetzung vornehmen (intermediate systems, IS) ▶ Annahme: oberste Protokollebene ist überall gleich ➡ Protokollkonverter ▶ Gateway setzt Protokolle auf der Ebene der Transportschicht um WS 2016/2017 • M. Werner 238 http://osg.informatik.tu-chemnitz.de Einführung in die Funktionsweise von Computersystemen Einführung in die Funktionsweise von Computersystemen 8 Host-an-Netz-Schicht Physical Layer ▶ Beim Netzzugang wird zwischen den logischen und dem physischen Zugriff unterschieden ▶ Regelung des logischen Medienzugriffs (MAC: medium access control) ▶ Bekannte MAC-Verfahren: ▶ ▶ innerhalb der Netze können verschiedene Medien zum Transport genutzt werden; typisch: elektromagentische Wellen Token Ring • • • • ▶ 8 garantiert Fairness gut bei gleichmässig hoher Last große Latzenzzeiten Bsp.: IBM Token Ring CSMA/CD (carrier sensing, multiple access with collision detection) • • • stochastische Fairness gut bei niedriger bis mittlerer Last, dann kleine Latenzzeiten Bsp. Ethernet 239 WS 2016/2017 • M. Werner http://osg.informatik.tu-chemnitz.de 240 WS 2016/2017 • M. Werner Einführung in die Funktionsweise von Computersystemen http://osg.informatik.tu-chemnitz.de Einführung in die Funktionsweise von Computersystemen 8 Modulation WS 2016/2017 • M. Werner 8 Am Ziel 241 http://osg.informatik.tu-chemnitz.de ▶ Ist ein Paket beim Empfänger angelangt, wird der Protokollstack rückwärts durchlaufen: ▶ Die unteren Schichten lesen die Pakete vom Netz und liefern sie an das IP-Protokoll ▶ IP setzt die Pakete zu Datagrammen zusammen und reicht sie an TCP ▶ TCP überprüft auf Fehler, behebt sie (evtl. Kommunikation mit dem ursprünglichen Sender), setzt die Datagramme zu http-Nachrichten zusammen, und liefert diese an den WWW-Server aus ▶ Web-Server versteht die http-Nachricht, sucht das entsprechende Dokument und sendet es dem Browser zurück... ▶ ... und das Spiel beginnt von vorn. WS 2016/2017 • M. Werner 242 http://osg.informatik.tu-chemnitz.de