263-3501-00 Advanced Computer Networks
Overview
This course covers advanced topics in computer networks. The focus
is on principles, architectures, and protocols used in modern networked
systems.
The goal is to provide an understanding of the trade-offs and existing
technology in building large, complex systems primarily by analyzing
the design and deployment of real systems and emerging
applications.
Topics include: wireless networks and
mobility issues at the network and transport layer (Mobile IP and
micromobility protocols, TCP in wireless environments). Mobile phone
networks. Overlay networks, flat routing protocols (DHTs), and
peer-to-peer architectures. The Border Gateway Protocol (BGP) in
practice.
Schedule NEW!
| Lectures: | Mondays 10:00 – 12:00 in HG D 7.1 |
| Exercises: | Tuesdays 10:00 – 12:00 in HG D 7.2 |
Staff
- Instructor: Oriana Riva (oriva at inf) CAB E 73.2
- Teaching assistant: Ioana Giurgiu (igiurgiu at inf) CAB F 72
Lecture schedule
| # | Date | Topic |
|---|---|---|
| 1 | 22.02.2010 |
Introduction and P2P systems [slides 1x1, slides 1x4] |
| 2 | 1.3.2010 | DHTs (part I) |
| 3 | 8.3.2010 | DHTs (part II) & Handling churn in DHTs |
| 4 | 15.3.2010 | Overlay networks |
| 5 | 22.3.2010 | Wireless networks (part I) |
| 6 | 29.3.2010 | Wireless networks (part II) |
| 7 | 5.4.2010 | NO LECTURE (EASTER BREAK) |
| 8 | 12.4.2010 | NO LECTURE |
| 9 | 19.4.2010 | Satellites and mobile phone networks (part I) |
| 10 | 26.4.2010 | Mobile phone networks (part II) |
| 11 |
3.5.2010 | Mobile phone networks (part III) |
| 12 | 10.5.2010 | Mobile phone networks (part IV) |
| 13 | 17.5.2010 | BGP-4 (part I) |
| 14 | 24.5.2010 | BGP-4 (part II) |
| 15 | 31.5.2010 | Written exam |
Exercise schedule
| # | Date | Topic | Notes |
|---|---|---|---|
| 1 | 23.02.2010 | Tutorial (Python, Twisted and PlanetLab) | Slides available from the course repo |
| 2 | 2.3.2010 | Assign Assignment 1 | |
| 3 | 9.3.2010 | Marking Assignment 1 and Assign Assignment 2 | |
| 4 | 16.3.2010 | Marking Assignment 2 and Assign Assignment 3a | |
| 5 | 23.3.2010 | Marking Assignment 3a and Assign Assignment 3b | |
| 6 | 30.3.2010 | Marking Assignment 3b and Assign Assignment 3c/d | |
| 7 | 6.4.2010 | NO EXERCISE SESSION (EASTER BREAK) | |
| 8 | 13.4.2010 | NO EXERCISE SESSION | |
| 9 | 20.4.2010 | Marking Assignment 3c/d and Assign Assignment 4a | |
| 10 | 27.4.2010 | Marking Assignment 4a and Assign Assignment 4b | |
| 11 | 4.5.2010 | Marking Assignment 4b and Assign Assignment 4c | |
| 12 | 11.5.2010 | Marking Assignment 4c and Assign Assignment 4d | |
| 13 | 18.5.2010 | Marking Assignment 4d | |
| 14 | 25.5.2010 | NO EXERCISE SESSION |
Course repository
Lecture and exercise slides can be downloaded from the course's svn repository (svn co https://svn.inf.ethz.ch/svn/alonso/fluvii/trunk/acn10/lectures/ and svn co https://svn.inf.ethz.ch/svn/alonso/fluvii/trunk/acn10/assignments/). The repository should also be used to submit assignments in the corresponding student directory identified by the student's username (svn co https://svn.inf.ethz.ch/svn/alonso/fluvii/trunk/acn10/students/your-username).
Assignments
The exercise sessions will focus on implementing simple networking protocols and applications and test their behaviour on PlanetLab. The programming language is Python.
There will be a total of 4 assignments through which students can collect a maximum of 50 points. Assignment deadlines missed by no more than a week will cause a loss of 25% of the mark, if missed for more than one week the loss is 50%. No submissions will be accepted later than 2 weeks after the deadline.
Students can ask clarifications about the assignments during the exercise sessions or by appointment with the teaching assistant. During the Marking sessions the students' assignments are graded. Students are required to give a demonstration of their solution, explain their code and be ready to justify their implementation choices. Responses to this questioning will have a strong impact on the mark! Zero marks will be given if students cannot demonstrate a basic understanding of their solution.
Besides demonstrating the operation of the code during the Marking sessions, students are required to submit all their code one day before the Marking session (i.e., on Mondays at 9am, local time). The code submitted MUST be the final one and MUST be the same as the one that will be demonstrated at the Marking session. If the instructor notices significant changes between the submitted code and the demonstrated code, she can decide to decrease the final mark up to 50%.
Please create a tar file of your source code per each assignment and commit it to the course repository:
tar cvzf acn_aX_username1_username2.tar.gz acn_assignmentX
svn commit -m "added assignment X"
Please use the above format in naming your files. Replace X with the number of the assignment and username with your username (e.g., acn_a1_oriva_igiurgiu.tar.gz).
In any other communication with the course instructors please use the following topic in your emails: ACN10
In the first 2 assignments students must work individually. In assignment 3 and 4 students can work in groups of maximum 2 people. All students in the same group will be awarded the same grade unless there is a clear difference between the level of understanding of the problem of the two students. Only one student per group needs to submit the source code electronically, however both students in a group must be present during the demonstration of the code.Language
EnglishText and reference books
- Mobile Communications, 2nd edition, by Jochen Schiller, Addison Wesley (Main Reference Book)
- BGP4 Inter-Domain Routing in the Internet by John W. Stewart III, The Addison-Wesley Networking Basics Series (Main Reference Book)
- Computer Networks by Larry L. Peterson and Bruce S. Davie, Morgan
Kaufmann (Basic networking concepts)
- Several research papers referenced during the lectures
PlanetLab
To access planet rename your private key as your username and set read permissions correctly (i.e., in Linux: chmod 400 your_private_key or in Windows: set the permissions from the file properties). To access a PlanetLab machine use ssh -i ~/.ssh/your_private_key -p 22022 username@machine -v. For example, the user with username igiurgiu would run the following command: ssh -i ~/.ssh/igiurgiu -p 22022 igiurgiu@planetlab02.mpi-sws.mpg.de -v . For more information refer to the tutorial slides given in the first exercise session.
Python and Twisted resources
- Python tutorial: http://docs.python.org/tutorial/
- Twisted documentation: http://twistedmatrix.com/documents/current/core/howto/index.html
Grading
There will be a written exam (in English) that will take place in the last week of the course. Completion of the exercises assigned during the course is a requirement for taking the exam.
The exam will account for 50% of the final grade and the lab assignments for the other 50%.



