AlGInt-S03-W18 - Universität Paderborn

Werbung
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
Herunterladen