Small logo of ETH main building ETH Zurich : Computer Science : Pervasive Computing : Distributed Systems : Education : NS WS2000/01

Vernetzte Systeme

Prof. Dr. Friedemann Mattern
Vorlesung WS2000/01

Aktuell: Prüfung im Herbst 2001

Die schriftliche Vordiplomsprüfung in diesem Herbst findet am 11. Oktober 2001 zwischen 9:00 und 10:30 Uhr statt (Achtung: 90-minütige Prüfung; Änderung gegenüber den Vorjahren, als diese noch 120 Minuten betrug).

Für die Prüfung sind die Räume HG F1, HG G3 und HG G5 vorgesehen; die genaue Saaleinteilung wird am Prüfungstag an den Sälen ausgehängt sein.

Zu der Prüfung sind keine Hilfsmittel zugelassen.

Zeit und Ort:

Mittwoch, 15 bis 17 Uhr, HG E3

Inhalt:

Die Veranstaltung befasst sich mit den wichtigsten Charakteristika moderner Rechnernetze. Schwerpunkte sind: Motivation und Geschichte der Kommunikation, nachrichtentechnische Grundlagen, lokale Netze (u.a. Ethernet, CSMA/CD), Schichtenmodelle, Protokolle, Überblick zu TCP/IP, Internet (Adressen, Struktur, Dienste), Routing, Hochgeschwindigkeitskommunikation, drahtlose lokale Netze und mobile Netze. Ferner wird auf einige Grundaspekte verteilter Systeme eingegangen.

Folien:

Folien werden hier einige Tage nach der jeweiligen Vorlesungsstunde zum Download bereitgestellt.

PDF-Format PS-Format
1 Vorl.VNetz00_01.pdf (1.9M) Vorl.VNetz00_01.ps (13M)
2 Vorl.VNetz00_02.pdf (118K) Vorl.VNetz00_02.ps (392K)
3 Vorl.VNetz00_03.pdf (49K) Vorl.VNetz00_03.ps (149K)
4 Vorl.VNetz00_04.pdf (726K) Vorl.VNetz00_04.ps (3.4M)
5 Vorl.VNetz00_05.pdf (714K) Vorl.VNetz00_05.ps (14M)
6 Vorl.VNetz00_06.pdf (48K) Vorl.VNetz00_06.ps (191K)
7 Vorl.VNetz00_07.pdf (238K) Vorl.VNetz00_07.ps (2.5M)
8 Vorl.VNetz00_08.pdf (610K) Vorl.VNetz00_08.ps (4.6M)
9 Vorl.VNetz00_09.pdf (55K) Vorl.VNetz00_09.ps (183K)
10 Vorl.VNetz00_10.pdf (63K) Vorl.VNetz00_10.ps (477K)
11 Vorl.VNetz00_11.pdf (360K) Vorl.VNetz00_11.ps (2.5M)
12 Vorl.VNetz00_12.pdf (62K) Vorl.VNetz00_12.ps (195K)
13 Vorl.VNetz00_13.pdf (129K) Vorl.VNetz00_13.ps (426K)
14 Vorl.VNetz00_14.pdf (163K) Vorl.VNetz00_14.ps (4.3M)
15 Vorl.VNetz00_15.pdf (589K) Vorl.VNetz00_15.ps (4.8M)

Übungen

Inhalt:

In der Regel wird jede Woche nach der Vorlesung ein Aufgabenblatt ausgegeben. Dabei handelt es sich um theoretische Übungen zur Vertiefung des Vorlesungsstoffes und um praktische Übungen, zum Teil auch als Ergänzung zur Vorlesung. Die Übungen sollten in Zweiergruppen bearbeitet werden, in Ausnahmefällen kann auch pro Person eine Lösung abgegeben werden. Es wird erwartet, dass die Teilnehmer die Aufgaben regelmässig und selbständig bearbeiten. Offensichtlich abgeschriebene Lösungen wirken sich zu Ihrem Nachteil aus! Zur Bearbeitung der Aufgaben haben Sie in der Regel eine Woche Zeit, Abgabetermin ist jeweils zu Beginn der nächstwöchigen Vorlesung. Die Aufgaben werden in dem auf den Abgabetermin folgenden Tutorium besprochen.

Testatbedingungen:

Um ein Testat für die Vorlesung zu erhalten, sollten 80 Prozent der insgesamt gestellten Aufgaben bearbeitet werden. Die bearbeiteten Aufgaben werden nach einem Punktesystem bewertet (mehr Punkte für schwierigere und/oder arbeitsaufwendigere Aufgaben). Sie müssen 40 Prozent der Gesamtpunktzahl aller gestellten Aufgaben erreichen, um das Testat zu erlangen.

Rechnerzugang:

Die praktischen Übungen können Sie an den Computern des Departements Informatik (beispielsweise in den Räumen D 31 und D 35 im IFW-Gebäude) erledigen. Die dazu nötigen Accounts sollten Sie bereits zu Beginn Ihres Studiums erhalten haben. Bei Fragen bzw. Problem bezüglich Ihrer Accounts wenden Sie sich bitte an den Leiter Ihres Tutoriums.

Übungsgruppen:

Gruppe Beginn Zeit Ort Assistenten Email
1
30.10.99 Mo 11-12 HG E5 Harald Vogt vogt@inf.ethz.ch
2
30.10.99 Mo 11-12 HG E33.2 Patrick Stüdi stuedip@student.ethz.ch
3
30.10.99 Mo 11-12 HG F26.1 Adrian von Bidder avbidder@fortytwo.ch
4
30.10.99 Mo 11-12 HG F26.5 Michael Rohs rohs@inf.ethz.ch
5
30.10.99 Mo 11-12 HG D3.3 Vlad Coroama coroama@inf.ethz.ch
6
30.10.99 Mo 11-12 HG G26.3 Jürgen Bohn bohn@inf.ethz.ch
7
30.10.99 Mo 11-12 IFW A34 Svetlana Domnitcheva domnitch@inf.ethz.ch
8
30.10.99 Mo 11-12 IFW C42 Kay Römer roemer@inf.ethz.ch

Übungsaufgaben:

Übung Ausgabe Abgabe PDF-Format PS-Format Kommentare
1
25.10.00 01.11.00 uebung1.pdf (9K) uebung1.ps (20K)  Zu Aufgabe 1a: Die Syntax von ping ist auf verschiedenen Plattformen unterschiedlich. So besagt der Parameter -s unter Solaris, dass auch die Zeit bis zum Host angegeben werden soll und nicht nur die Meldung "is alive".
Unter Linux hingegen gibt -s die Paketgrösse des zu schickenden Pakets an. Der Aufruf ping -s www.mico.org ergibt einen Syntaxfehler. Wer unter Linux arbeitet, sollte daher den Parameter weglassen und einfach ping www.mico.org aufrufen.

Zu Aufgabe 1b: Auf den Rechnern in den Räumen D31 und D35 im IFW-Gebäude ist traceroute im /usr/local/admin/bin/ zu finden. Falls Sie auf einem anderen Sun-Rechner arbeiten, auf dem traceroute nicht installiert ist, können Sie sich hier ein Perl-Script downloaden, das die Funktionalität von traceroute bereitstellt. Anstelle von traceroute müssen Sie dann perl traceroute.pl eingeben.

2
01.11.00 08.11.00 uebung2.pdf (7K) uebung2.ps (18K) 
3
08.11.00 15.11.00 uebung3.pdf (62K) uebung3.ps (0.4M)  Zu Aufgabe 15a: Durch das Vorhandensein des Unterpunktes a) entsteht der Eindruck, es gäbe noch mindestens ein Punkt b) in dieser Aufgabe. Dem ist nicht so; Aufgabe 15a) ist die letzte dieses Übungsblattes.
4
15.11.00 22.11.00 uebung4.pdf (33K) uebung4.ps (24K)  Zu Aufgabe 19a: Bitte laden Sie sich hier einen einfachen Java Web-Client herunter (am Besten mit der rechten Maustaste auf den Link klicken und dann mittels "Save as..." bzw. "Speichern unter..." in Ihrem Home-Directory als UserAgent.java speichern.) Weitere Informationen finden Sie im Quelltext.
5
22.11.00 29.11.00 uebung5.pdf (16K) uebung5.ps (26K)  Zu Aufgabe 22: Sie finden hier ein kurzes HTTP-Tutorial, welches Ihnen zum Bearbeiten der Aufgabe helfen soll. Es werden vor allem die Unterschiede zwischen HTTP/1.0 und HTTP/1.1 hervorgehoben, die zum Lösen der Aufgabe notwendig sind.
6
29.11.00 06.12.00 uebung6.pdf (17K) uebung6.ps (51K)  Zu Aufgabe 25: Bitte laden Sie sich hier die Beispielimplementierungen des Ping-Pong-Clients und des Ping-Pong-Servers herunter. Übersetzen Sie die Quelltexte wie gewohnt mittels javac und führen Sie die Programme mittels java auf dem gleichen Rechner aus. Starten Sie dazu zunächst den Ping-Pong-Server und danach (in einem zweiten Fenster) den Ping-Pong-Client. Unter UNIX können Sie alternativ auch beide Programme in einem Fenster starten, indem Sie zuerst den Ping-Pong-Server mittels "java PingPongServer &" als Hintergrundprozess starten und anschliessend den Ping-Pong-Client wie gewohnt mit "java PingPongClient" aufrufen.
7
06.12.00 13.12.00 uebung7.pdf (7K) uebung7.ps (43K)  Die Schablone zur Aufgabe 27(a) hier
8
13.12.00 20.12.00 uebung8.pdf (26K) uebung8.ps (24K) 
9
20.12.00 10.01.01 uebung9.pdf (12K) uebung9.ps (22K)  Zu Aufgabe 36: Bitte laden Sie sich hier die Grundstruktur einer Ringpufferklasse herunter. Testen Sie Ihre Erweiterungen mit Hilfe eine Testprogramms. Hinweis: Eine Liste von Operatoren in Java (wie z.B. Modulo) finden sie auf Sun's Java Operators Seite.
10
10.01.01 17.01.01 uebung10.pdf (22K) uebung10.ps (962K) 
11
17.01.01 24.01.01 uebung11.pdf (112K) uebung11.ps (879K) 
12
24.01.01 31.01.01 uebung12.pdf (25K) uebung12.ps (68K) 
13
31.01.01 05.02.01 uebung13.pdf (27K) uebung13.ps (36K)  Zu Aufgabe 45: Eine detaillierte Zusammenfassung mit Links zu den einzelnen Klassen-Implementationen finden Sie auf einer separaten Seite.

Weiterführende Informationen:

Informationen zu Java finden Sie in Sun's Java Tutorial (in Englisch): Bei ganz speziellen Java-Fragen hilft die Language Specification: Wenn Sie die Methoden einer bestimmten Klasse herausfinden möchten, oder die Ein- und Ausgabeparameter einer Methode benötigen, finden Sie diese Angaben in der offiziellen Java-Referenz: Die in den Übungen gestellten Programmieraufgaben sollten jedoch mit den im Aufgabentext erwähnten Methoden und Klassen vollständig lösbar sein.

Lösungen der Programmieraufgaben

Da für die meisten Hörer der Vorlesung Java neu war, stellen wir hier Beispiellösungen für die Programmieraufgaben aus den Übungen vor. Es handelt sich dabei lediglich um Lösungsvorschläge, eine Musterlösung in dem Sinne kann es nicht geben. Die von den Studenten in den Übungen abgegebenen Lösungen sind zum Teil erheblich vollständiger oder korrekter gewesen.

Zum Thema Musterlösungen, hier ein Ausschnitt einer mail von Prof. Mattern, welcher seine Meinung unterstreicht.

Übung Aufgabe
4
Aufgabe 19b)
5
Hier gibt es Beispiellösungen für Aufgabe 22a), für Aufgabe 22b). Bei der Aufgabe 22c) kann man Lösungen für HTTP1.0 und HTTP1.1 unterscheiden.
6
Aufgabe 25
9
Aufgabe 36
13
Aufgabe 45

Ansprechpartner:

Falls Sie inhaltliche oder organisatorische Fragen zur Vorlesung haben, die nicht anderweitig (beispielsweise in den Tutorien oder der Vorlesung) geklärt werden können, können Sie dienstags von 15.00 Uhr bis 16.00 Uhr zu Vlad Coroama in die Sprechstunde kommen: 
Raum D 47.2, IFW Gebäude, Haldeneggsteig 4, 8006 Zürich
oder eine E-Mail an ihn schicken: coroama@inf.ethz.ch

Literatur:

  • L. Peterson, B. Davie: Computer Networks - A Systems Approach, Morgan Kaufmann (2nd edition, 2000)
  • A.S. Tanenbaum: Computer Networks, Prentice-Hall (3rd edition, 1996)
  • F. Halsall: Data Communications, Computer Networks and Open Systems, Addison Wesley (4th edition, 1996)
  • W. Stallings: Data and Computer Communications, Prentice Hall (6th edition, 1999)
  • W. P. Kowalk, M. Burke: Rechnernetze, Teubner (1994)
  • D. Comer: Computer Networks and Internets, Prentice Hall (2nd edition, 1999)
  • G. Coulouris, J. Dollimore, T. Kindberg: Distributed Systems - Concepts and Design, Addison-Wesley (3rd edition, 2000)
Für die meisten der oben aufgeführten englischsprachigen Bücher existieren deutsche Übersetzungen. So ist im dpunkt-Verlag neulichst die 2. Auflage des Lehrbuchs von Peterson / Davie erschienen:
ETH ZurichDistributed Systems Group
Last updated August 23 2010 01:55:14 PM MET vc