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.
Ü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:
Ü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.
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:
|