Small logo of ETH main building ETH Zurich : Computer Science : Pervasive Computing : Distributed Systems : Education : VS WS2001/02

Vernetzte Systeme

Prof. Dr. Friedemann Mattern
Vorlesung WS 2001/02

Aktuell: Prüfung im Frühjahr 2003

Die schriftliche Vordiplomprüfung in diesem Frühjahr findet am 20. März 2003 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 und HG F7 vorgesehen; die genaue Saaleinteilung wird am Prüfungstag an den Sälen ausgehängt sein.

Zur Prüfung sind keine Hilfsmittel zugelassen.

Zeit und Ort:

Mittwoch 15:00-17:00, HG E7

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:

Foliensammlungen zur Vorlesung sind in der ersten Vorlesungsstunde verkauft worden. Einige Exemplare sind noch übrig und können zum Umkostenbeitrag von 10 SFr. bei Michael Rohs erworben werden.

Übungen

Inhalt:

In der Regel wird jede Woche 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 sollen 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. Die Aufgaben werden in dem auf den Abgabetermin folgenden Tutorium besprochen.

Testatbedingungen:

Um ein Testat für die Vorlesung zu erhalten, müssen 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:

Die Übungen beginnen am 29.10.2001 und finden jeweils montags von 11:00-12:00 Uhr statt.

Gruppe Ort Übungsbetreuer Email
1
HG G26.5 Nadyr Weibel nad@nadnet.ch
2
HG E1.1 Christof Dornbierer chdornbi@iiic.ethz.ch
3
HG F26.1 Simon Schlachter simschla@iiic.ethz.ch
4
HG F26.5 Markus Keller markus_keller@student.ethz.ch
5
HG D3.1 Danat Pomeranets pomerada@student.ethz.ch
6
IFW A34 Michael Rohs rohs@inf.ethz.ch
7
RZ F21 Kay Römer roemer@inf.ethz.ch
8
IFW A32 Oliver Kasten kasten@inf.ethz.ch
9
LFW C4 Hermann Lehner hermann@vis.ethz.ch
10
LFW E13 Nicolas Burri famburri@nextron.ch
11
ETZ J91 Matthias Wille muddy@student.ethz.ch
12
ETZ H91 Daniel Bruggesser dbruggesser@student.ethz.ch
13
LEC C14 Jürgen Bohn bohn@inf.ethz.ch
14
ML D13 Frank Siegemund siegemun@inf.ethz.ch

Übungsaufgaben:

Übung Ausgabe Abgabe PDF-Format PS-Format
1
24.10.01 29.10.01 uebung1.pdf (9k) uebung1.ps (23k)
Zu Aufgabe 1b: Auf den Rechnern in IFW D31 und D35 ist traceroute unter /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 herunterladen, das die Funktionalität von traceroute bereitstellt. Anstelle von traceroute müssen Sie dann perl traceroute.pl eingeben.
2
29.10.01 05.11.01 uebung2.pdf (8k) uebung2.ps (21k)
3
05.11.01 12.11.01 uebung3.pdf (50k) uebung3.ps (469k)
4
12.11.01 19.11.01 uebung4.pdf (35k) uebung4.ps (27k) 
Zu Aufgabe 18a: Bitte laden Sie sich hier den Java Quelltext des Web-Clients 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
19.11.01 26.11.01 uebung5.pdf (29k) uebung5.ps (34k) 
Zu Aufgabe 21: Sie finden hier ein kurzes HTTP-Tutorial, welches Ihnen beim 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
26.11.01 03.12.01 uebung6.pdf (40k) uebung6.ps (60k) 
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
03.12.01 10.12.01 uebung7.pdf (17k) uebung7.ps (46k) 
Die Schablone zu Aufgabe 27.a als pdf und ps.
Korrektur zu Aufgabe 27.b: 2*Sendefenstergrösse + Empfangsfenstergrösse Sequenznummern reichen aus, Sendefenstergrösse + Empfangsfenstergrösse Sequenznummern jedoch nicht. Der Aufgabentext wurde entsprechend korrigiert.
8
10.12.01 17.12.01 uebung8.pdf (24k) uebung8.ps (29k) 
9
17.12.01 07.01.02 uebung9.pdf (33k) uebung9.ps (38k) 
Zu Aufgabe 34: Bitte laden Sie sich hier die Grundstruktur einer Sliding Window Receiver Klasse herunter. Testen Sie Ihre Erweiterungen mit Hilfe eines Testprogramms. Hinweis: Eine Liste von Operatoren in Java (wie z.B. Modulo) finden Sie auf Sun's Java Operators Seite.
10
07.01.02 14.01.02 uebung10.pdf (29k) uebung10.ps (965k) 
11
14.01.02 21.01.02 uebung11.pdf (20k) uebung11.ps (39k) 
12
21.01.02 28.01.02 uebung12.pdf (424k) uebung12.ps (212k) 
13
28.01.02 04.02.02 uebung13.pdf (25k) uebung13.ps (34k) 
Zu Aufgabe 43: Das TCP-Zustandsübergangsdiagramm aus RFC 793 finden Sie hier.
Fehler im Skript (Folie 332): In der dritten Nachricht im TCP-Handshake muss das SYN-Bit gelöscht sein. Nur in den ersten beiden ist es gesetzt.
Zu Aufgabe 45: Anfragen an DNS-Server können Sie mit diesem Web-Interface durchführen. (Weiterführende Information: DNS ist in den RFCs 1034 und 1035 spezifiziert.)

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 ist, stellen wir hier Beispiellösungen für die Programmieraufgaben aus den Übungen vor. Es handelt sich dabei lediglich um Lösungsvorschläge.

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

Übung Aufgabe Quelltext Bemerkungen
4
18.b
UserAgent.java
5
21.a
UserAgent21a.java
5
21.b
UserAgent21b.java
5
21.c
UserAgent21c_http10.java HTTP 1.0
5
21.c
UserAgent21c_http11.java HTTP 1.1
6
25
FTPClient.java
9
34
SlidingWindowReceiverBsp.java Erläuterungen dazu
9
34
SlidingWindowReceiverBspTest.java
9
34
SWR.java Lösungsalternative
9
34
SWRTest.java Lösungsalternative

Ansprechpartner:

Falls Sie inhaltliche oder organisatorische Fragen zur Vorlesung haben, die sich nicht anderweitig (etwa in den Tutorien oder der Vorlesung) klären lassen, können Sie dienstags von 14:15 Uhr bis 15:00 Uhr zu Michael Rohs in die Sprechstunde kommen oder ihm eine Email schreiben:
Michael Rohs, rohs@inf.ethz.ch
C43.1, IFW Gebäude, Haldeneggsteig 4, 8006 Zürich

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)
  • J.F. Kurose, K.W. Ross: Computer Networking, Addison Wesley (2001), ISBN 0-201-47711-4
  • 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 die 2. Auflage des Lehrbuchs von Peterson / Davie erschienen:
ETH ZurichDistributed Systems Group
Last updated August 23 2010 01:55:15 PM MET mr