Fundamentale Ideen der Informatik PH Weingarten • Sommersemester 2014 Paul Libbrecht • CC-BY Vorlesung 6: Netzwerübermittlung Karte der Themen Ziel der Vorlesung: zentrale Themen der Informatik ergreifen: • historisch • prozedural • gesellschaftlich Programmverlauf Netzwerk Suche, Index Verschlüsselung Java Instruktionen von Neumann Modell Maschinelles Lernen Datenstrukturen Betriebsystem Versionierung Komplexität Klassen & Instanzen Komprimierung Repräsentationen Menü • Idee: Paketnetzwerk • Idee: Socket • Netzwerkübermittlung • Idee: Buffer • Protokollen • WebServer Idee Paketnetzwerk Ein Netzwerk von Rechnern mit Adressen und Routern die kleine Datenpakete austausche können. • Jede Knote kann Pakete schicken und empfangen mit Adressen From: 192.168.3.3 To: 212.23.23.1 • Routern sagen wohin: • zu rechts oder links mit oder ohne Adressenübersetzung • horizontal? alltag? das Internet ist überall benützt • Beschreibung/Repräsentationen: Grafisch, Postsystem, Routingtabelle • geschichte: Vinton Cerf, ~1970: Arpanet dann das klassischste TCP/IP Fotoquelle: http://de.wikipedia.org/wiki/Vinton_G._Cerf Paketnetzwerk: Fundamentale Idee? Idee: Socket 1 sur 1 28/05/14 23:09 • Problem: Packete kommen in der falschen Ordnungsreihe • Animation ⤤ von PBS’ Nerds 2.0.1 ⤤ • Ziel: wie ein Telefonanruf Ein Paar von Kanälen zwischen zwei Netzwerkknoten (A nach B, und B nach A), das Reihen von Bytes austauschen erlaubt, heisst eine Socket. Idee Socket: Fundamental 1 sur 1 • horizontal: in fast jede Internetverbindungen benutzt • vertikal: als Telefonanruf, als Paar von Röhre, als Filmreiehenabo • zeit: imitiert RS232C • (seit der 60er, siehe zB hier ⤤) • leichter zu verarbeiten als Pakete 28/05/14 23:09 Praktisches: eine einfache Netzwerkübermittlung • in Paare, Projekt FundIdeen05-Netzwerk ⤤ • einer läuft das Server • wählt die Datei, übermittelt die Adresse • besser mit einer Textdatei • Server startet und erwartet Clients • der andere das Client • Gibt die Adresse ein, prüft die empfagene Datei • Client verbindet, Server schickt die Datei zu Beobachten • Byte pro Byte verarbeitet • Wenn einer Debug und stoppt, wartet der andere • Blocking Input-Output • Problem damit? • Sockets brauchen Speicher (jede Stufe) • Wie testen, dass ein Socket noch offen ist? • Protokolle zum Verbindungsmanagement • eigentlich sollte Netzwerkwartezeit... zu anderen Prozessen gegeben werden... Ideee: Buffer • Ich lese eine Menge • soviel da ist, aber nur soviel ich kann • ein Raum als Parameter... bitte füllen • erlaubt volle Pakete ausgetauscht zu werden • wie eine Schubkarre, Korb, ... (du füllst, ich warte) Idee Buffer: Fundamental? • horizontal: in Industrien, im Postamt • vertikal & Repräsentationen: als Tabelle, Wartezimmer • Zeit: Essenschlange seit... Network Architecture Stack: Http web applications resources encoding (html, js, …) URLs http queries connection management (http/https) TCP sockets IP packets Domain Name Servers Network Architecture Stack: RTSP media applications (conferencing, video play…) resources encoding (mp4, ...) URLs rtsp queries protocol negotiation UDP transport TCP sockets IP packets Domain Name Servers Visualize: The Web Inspector • open Chrome, Firefox, or Safari • request inspector • open network/resources/ timeline • view running connections • here spiegel.de Praktisches II: Mini Webserver • Klasse WebServer • wie Server aber: • hört das Header vom Client zu • schickt ein (primitives) Header • zum Testen mit Browser oder Telefon • Achtung: sicherer auf dem selben Subnetz Take Away • Unser Internet: TCP/IP • Packete => bis zu Sockets • Einfaches Input / Output mit Java Sockets • das grosses Web? Nur ein Paar Regeln mehr! danke schön https://canvas.instructure.com/courses/851238