Vorlesung Sommersemester 2002 HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik Algorithmische Grundlagen des Internets Christian Schindelhauer [email protected] HEINZ NIXDORF INSTITUT Universität Paderborn Fakultät für Elektrotechnik, Informatik und Mathematik Institut für Informatik AG Theoretische Informatik Algorithmen, Komplexitätstheorie, Paralleles Rechnen Algorithm. Grundlagen des Internets 1 Christian Schindelhauer 28. April 2003 Motivation und Ziel HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik o Algorithmen und Probleme des Internets Die Struktur des Internets ist historisch gewachsen Von kleinen Anfängen zum globalen umfassenden Rechnernetzerk Das Internet vernetzt viele heterogene lokale Netzwerke (LAN) Ständig verändernde Nutzung Unterschiedliche Absichten der Nutzer Interessante algorithmische Problemstellungen und entsprechend originelle Lösungen. Ziel dieser Veranstaltung Theoretische Hintergründe hinter beispielhaften Problemstellungen und algorithmischen Lösungen vorstellen und diskutieren. Algorithm. Grundlagen des Internets 28. April 2003 2 Christian Schindelhauer Inhalte HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik 1. Kurzübersicht TCP/IP 2. IP: Der Kampf gegen DoS-Angriffe (denial of service) 3. TCP: Verteilte faire und effiziente Durchsatzoptimierung 4. Der Webgraph: • Struktur und Aufbau • Suchalgorithmen für das Internet 5. P2P (Peer to Peer-Netzwerke): Effizientes File-sharing 6. Web-Caching: Surfen ohne Engpässe Algorithm. Grundlagen des Internets 28. April 2003 3 Christian Schindelhauer Organisation Termine HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik o Vorlesungsbegleitende Web-Seite: http://www.upb.de/cs/ag-madh/vorl/AlGInt03/ Mit Skript, Folien und Übungsaufgaben o Termine: Vorlesung (V2) • Mo 14.15 - 15.45 F0.530 Übung (Ü1) • Start heute: 28. April 2002 • 1. Gruppe: Mo 16:00 - 16:45, F0.530 • 2. Gruppe: Mo 17:00 – 17:45, F0.530 Prüfung (zwei Termine) • 2./3. Woche nach Vorlesungszeit • ein bis zwei Wochen vor Vorlesungszeit Abschlussveranstaltung am 8.8.2003 Algorithm. Grundlagen des Internets 28. April 2003 4 Christian Schindelhauer Organisation Vorlesung HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik o Vorlesungsbetrieb Powerpoint-Folien nach der Vorlesung im Web verfügbar Tafelanschrieb und Folieninhalt durch Skript abgedeckt Zwischenfragen erwünscht o Ausrichtung: Modelle und Algorithmen (MuA) D.h. keine Implementationsdetails, sondern Algorithmen Analyse von Algorithmen Untere Schranken Wahrscheinlichkeitstheoretische Analysen (nicht zu knapp) Fragestellungen sind motiviert durch das Internet & WWW Algorithm. Grundlagen des Internets 28. April 2003 5 Christian Schindelhauer Organisation Übung HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik Kombinierter Betrieb o Wochenübungen Erhältlich • vor der Übung von Montag bis Donnerstag per WWW • nach der Übung im WWW Donnerstags Abgabe (freiwillig) Besprechung in Montagsübung o Präsenzübung Alternativveranstaltung zu Wochenübungsblatt Angepasste Aufgabenstellungen Wird zu Beginn der Übung verteilt In Gruppenarbeit gelöst Ergebnisse werden in der Übung diskutiert Algorithm. Grundlagen des Internets 28. April 2003 6 Christian Schindelhauer Organisation Literatur/Prüfung/Sprechstunde HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik o Literatur: (ergänzend) wird während der Veranstaltung bekanntgegeben W. Richard Stevens, TCP/IP Illustrated, Volume I, AddisonWesley, 1996 (ergänzend) o Prüfung (DPO 4) Benotete 30-minütige mündliche Prüfung im Anschluß an die Veranstaltung Mögliche Prüfungsfragen • werden am Ende der Veranstaltung veröffentlicht • sind Übungsaufgaben (Öffentliche) Testprüfung auf Anfrage o Sprechstunde: nach Vereinbarung • Mail: [email protected] • Tel: 606452 Algorithm. Grundlagen des Internets 28. April 2003 7 Christian Schindelhauer Eine Kurzeinführung von TCP/IP Das Internet-Schichtenmodell HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik Das Internet (von worldwide inter-networking) • ist das weltweite, offene WAN (wide area network) • verbindet LANs (local area networks) • ist systemunabhängig Anwendung Transport Netzwerk Link z.B. Telnet, FTP, HTTP, Email TCP (transmission control protocol) UDP (user datagramm protocol) IP (internet protocol) + ICMP (internet control message protocol) + IGMP (internet group management protocol) LAN (z.B. Ethernet, Token Ring etc.) Algorithm. Grundlagen des Internets 28. April 2003 8 Christian Schindelhauer Überblick Algorithm. Grundlagen des Internets 28. April 2003 9 HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik Christian Schindelhauer Anwendungsschicht (application layer) HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik o Anwendungen (z.B WWW, E-Mail, Telnet, FTP) erzeugen Kommunikationsverbindungen zwischen zwei Rechnern im Netzwerk o Anforderungen an Kommunikation: Verbindungen sind bidirektional (oftmals Client-Server) Datenmenge kann variieren Die gegenläufigen Datenströme sind meist abhängig Fehlerfreie Übermittlung der Datenströme wird vorausgesetzt Kein Abbruch bei Verbindungspausen o Kommunikation wird auf Transportschicht delegiert Algorithm. Grundlagen des Internets 28. April 2003 10 Christian Schindelhauer Transportschicht (transport layer) HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik o TCP (transmission control protocol) Erzeugt zuverlässigen Datenfluß zwischen zwei Rechnern Unterteilt Datenströme aus Anwendungsschicht in Pakete Gegenseite schickt Empfangsbestätigungen (Acknowledgments) o UDP (user datagram protocol) Einfacher unzuverlässiger Dienst zum Versand von einzelnen Päckchen Wandelt Eingabe in ein Datagramm um Anwendungsschicht bestimmt Paketgröße o Versand durch Netzwerkschicht o Kein Routing: End-to-End-Protokolle Algorithm. Grundlagen des Internets 28. April 2003 11 Christian Schindelhauer HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik TCP (I) TCP ist ein verbindungsorientierter, zuverlässiger Dienst für bidirektionale Byteströme o TCP ist verbindungsorientiert Zwei Parteien identifiziert durch Socket: IP-Adresse und Port (TCP-Verbindung eindeutig identifiziert durch Socketpaar) Kein Broadcast oder Multicast Verbindungsaufbau und Ende notwendig Solange Verbindung nicht (ordentlich) beendet, ist Verbindung noch aktiv Algorithm. Grundlagen des Internets 28. April 2003 12 Christian Schindelhauer HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik TCP (II) TCP ist ein verbindungsorientierter, zuverlässiger Dienst für bidirektionale Byteströme o TCP ist zuverlässig Jedes Datenpaket wird bestätigt (acknowledgment) Erneutes Senden von unbestätigten Datenpakete Checksum für TCP-Header und Daten TCP nummeriert Pakete und sortiert beim Empfänger Löscht duplizierte Pakete Algorithm. Grundlagen des Internets 28. April 2003 13 Christian Schindelhauer TCP (III) HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik TCP ist ein verbindungsorientierter, zuverlässiger Dienst für bidirektionale Byteströme o TCP ist ein Dienst für bidirektionale Byteströme Daten sind zwei gegenläufige Folgen aus einzelnen Bytes (=8 Bits) Inhalt wird nicht interpretiert Zeitverhalten der Datenfolgen kann verändert werden Versucht zeitnahe Auslieferung jedes einzelnen Datenbytes Versucht Übertragungsmedium effizient zu nutzen = wenig Pakete Algorithm. Grundlagen des Internets 28. April 2003 14 Christian Schindelhauer Netzwerkschicht (I) (network layer) HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik o IP (Internet Protocol) + Hilfsprotokolle ICMP (Internet Control Management Protocol) IGMP (Internet Group Management Protocol) Ermöglicht Verbund von (lokalen) Netzwerken IP ist ein unzuverlässiger verbindungsloser Datagrammauslieferungsdienst o Datagramm besteht aus Anwendungsdaten und Header: • Absender, Zieladresse • TOS-Feld (type of service) • TTL-Feld (time to live) • ... (z.B. Paketlänge, Checksum für Header) Algorithm. Grundlagen des Internets 28. April 2003 15 Christian Schindelhauer Netzwerkschicht (II) (network layer) HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik o IP ist ein Datagrammauslieferungsdienst Soweit möglich direkte Übergabe von Sender zu Empfänger Sonst: Hop-Routing über Router o IP ist unzuverlässig Fehlerbehandlung: • Falls Problem beim Routing: - Lösche Datagramm - Schicke Fehlermeldung durch ICMP an Absender • Falls Problem beim Routing von ICMP-Fehlermeldung - Lösche Fehlermeldungspaket Keine Redundanz vorgesehen TTL-Feld begrenzt Anzahl der Hops eines Datagramms Algorithm. Grundlagen des Internets 28. April 2003 16 Christian Schindelhauer IP-Adressen und Domain Name System (DNS) HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik o IP-Adressen Jedes Interface in einem Netzwerk hat weltweit eindeutige IPAdresse 32 Bits unterteilt in Net-ID und Host-ID Net-ID vergeben durch Internet Network Information Center Host-ID durch lokale Netzwerkadministration o Domain Name System (DNS) Ersetzt IP-Adressen wie z.B. 131.234.22.29 durch Namen wie z.B. stargate.uni-paderborn.de und umgekehrt Verteilte robuste Datenbank Algorithm. Grundlagen des Internets 28. April 2003 17 Christian Schindelhauer Routing im Internet durch IP HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik o Routing-Prinzip für Datagramm im Router: Falls Ziel = eigene ID, dann Übergabe an Transportschicht Ansonsten falls Ziel-Netz = lokales Netz, dann verschicke Datagramm direkt an Zielrechner Ansonsten suche gemäß Ziel-IP-Adresse den nächsten Router aus lokaler Routingtabelle und sende Datagramm zum nächsten Router o Unterhalt von Routingtabellen manuell (LAN) oder automatisch durch • RIP (Routing Information Protocol), • OSPF (Open Shortest Path First) • ... Algorithm. Grundlagen des Internets 28. April 2003 18 Christian Schindelhauer Verbindungsschicht (link layer) HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik o Schnittstelle zu lokalem Netzwerk wie z.B. Ethernet, oder Token Ring o Umwandlung von IP-Adressen in lokale Netzwerkadressen durch ARP (Address Resolution Protocol) RARP (Reverse Address Resolution Protocol) o Evtl. Unterteilung der Datagramme in noch kleinere Pakete Algorithm. Grundlagen des Internets 28. April 2003 19 Christian Schindelhauer Beispiel zum Zusammenspiel Algorithm. Grundlagen des Internets 28. April 2003 20 HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik Christian Schindelhauer Datenkapselung Algorithm. Grundlagen des Internets 28. April 2003 21 HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik Christian Schindelhauer HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik IP-Header (RFC 791) 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version| IHL |Type of Service| Total Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Identification |Flags| Fragment Offset | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Time to Live | Protocol | Header Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Destination Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Options | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ o Version: 4 = IPv4 o IHL: Headerlänge in 32 Bit-Wörter (>5) o Type of Service o maximale Anzahl Hops o Optimiere delay, throughput, reliability, monetary cost o 28. April 2003 Protocol, identifiziert passendes Protokoll Z.B. TCP, UDP, ICMP, IGMP o Checksum (nur für IP-Header) Algorithm. Grundlagen des Internets Time to Live: 22 Source and destination IP-address Christian Schindelhauer HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik TCP-Header (I) 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Acknowledgment Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data | |U|A|P|R|S|F| | | Offset| Reserved |R|C|S|S|Y|I| Window | | | |G|K|H|T|N|N| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Checksum | Urgent Pointer | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Options | Padding | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ o Prüfsumme o Sequenznummer = Nummer des ersten Bytes im Segment Für Header und Daten o Headerlänge (data offset) o Absender-Port + Ziel-Port-Nr. Erlaubt mehrere TCPVerbindungen pro IP-Adresse Jedes Datenbyte ist nummeriert modulo 232-1 o Bestätigungsnummer Nummer des nächsten noch nicht bearbeiteten Datenbytes = letzte Sequenznummer + letzte Datenmenge Algorithm. Grundlagen des Internets 28. April 2003 23 Christian Schindelhauer HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik TCP-Verbindungsaufbau o In der Regel Client-Server-Verbindungen Dann Aufbau mit drei TCP-Pakete (=Segmente) Mit ersten SYN-Segment auch Übermittlung der MSS (maximum segment size) Algorithm. Grundlagen des Internets 28. April 2003 24 Christian Schindelhauer TCP-Verbindungssende HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik o Half-Close Sender kündigt Ende mit FINSegment an und wartet auf Bestätigung In Gegenrichtung kann weitergesendet werden o 2 Half-Close beenden TCPVerbindung Algorithm. Grundlagen des Internets 28. April 2003 25 Christian Schindelhauer TCP-Bestätigungen o Huckepack-Technik HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik „Hello!“ Seq.nr. 17 Bestätigungen „reiten“ auf den Datenpaket der Gegenrichtung „bla bla“ Seq.nr. 91 ACK: 17+6=23 „World“ Seq.nr. 23 ACK: 91+7=98 o Eine Bestätigungssegment kann viele Segmente bestätigen Liegen keine Daten an, werden Acks verzögert Algorithm. Grundlagen des Internets 28. April 2003 26 „Das“ Seq.nr. 154 „ist“ Seq.nr. 157 „es“ Seq.nr. 160 ACK: 162 Christian Schindelhauer TCP - Algorithmus von Nagle (typische Internetlösung) HEINZ NIXDORF INSTITUT Universität Paderborn EIM ‒ Institut für Informatik • Wie kann man sicherstellen, dass kleine Pakete zeitnah ausgeliefert werden? Algorithmus von Nagle Kleine Pakete werden nicht versendet, solange Bestätigungen noch ausstehen. Trifft die Bestätigung des zuvor gesendeten Pakets ein, so wird das nächste verschickt. o Beispiel: Telnet versus ftp o Selbsttaktend: Schnelle Verbindung = viele kleine Pakete o Paket ist klein, wenn Datenlänge < MSS Algorithm. Grundlagen des Internets 28. April 2003 27 Christian Schindelhauer