
ECE/CS 438 Communication Networks - Fall 2017
Course Overview:
Computer communication networks are among the most important and influential global infrastructures that humanity has created. The goal of this course is to provide a foundational view of communication networks: the principles upon which the Internet and other computer networks are built; how those principles translate into deployed protocols; and hands-on experience solving challenging problems with network protocols.
This course will introduce students to the key concepts underlying wired and wireless networking. The layered architecture of the network protocol stack will be the focus of discussion. Alongside, a variety of case studies will be drawn from the Internet, combined with practical programming exercises. At the end of the semester, students will well understand several concepts, including the Internet architecture, HTTP, DNS, P2P, Sockets, TCP/IP, BGP, Routing protocols, wireless and sensor networking, WiFi, cellular and satellite networks, security, etc.
Lecture Time & Location: Monday & Wednesday 3:00pm - 4:20pm in ECEB 1015
Course Staff:
Instructor: Haitham Hassanieh (haitham@illinois.edu)
Office Hours: Monday/Wednesday 4:20pm - 5:00pm in Class.
Course TA: Ashutosh Dhekne (dhekne2@illinois.edu)
Office Hours: Wednesday 1:00pm - 3:00pm in CSL B05 Basement Lounge.
Course TA: Suraj Jog (sjog2@illinois.edu)
Office Hours: Thursday 2:00pm - 4:00pm in CSL 369.
Textbook: | Computer Networking (A Top-Down Approach Featuring the Internet)
J. F. Kurose and D. W. Ross, 6th or other editions, Addison-Wesley. |
Grading:
| 3 credits | 4 credits |
Homework: | 15% | 10% |
Programming Assignments: | 30% | 25% |
Midterm Exam: | 25% | 20% |
Final Exam: | 30% | 25% |
Mini-Project: | 0% | 20% |
Description:
Computer communication networks are among the most important and influential global infrastructures that humanity has created. The goal of this course is to provide a foundational view of communication networks: the principles upon which the Internet and other computer networks are built; how those principles translate into deployed protocols; and hands-on experience solving challenging problems with network protocols.
This course will introduce students to the key concepts underlying wired and wireless networking. The layered architecture of the network protocol stack will be the focus of discussion. Alongside, a variety of case studies will be drawn from the Internet, combined with practical programming exercises. At the end of the semester, students will well understand several concepts, including the Internet architecture, HTTP, DNS, P2P, Sockets, TCP/IP, BGP, Routing protocols, wireless and sensor networking, WiFi, cellular and satellite networks, security, etc.
Lecture Time & Location: Monday & Wednesday 3:00pm - 4:20pm in ECEB 1015
Course Staff:
Instructor: Haitham Hassanieh (haitham@illinois.edu)
Office Hours: Monday/Wednesday 4:20pm - 5:00pm in Class.
Course TA: Ashutosh Dhekne (dhekne2@illinois.edu)
Office Hours: Wednesday 1:00pm - 3:00pm in CSL B05 Basement.
Course TA: Suraj Jog (sjog2@illinois.edu)
Office Hours: Thursday 2:00pm - 4:00pm in CSL 369.
Piazza: http://piazza.com/illinois/fall2017/ececs438
Please post all general questions about
lectures, homework, or programming assignments
on Piazza rather than emailing the staff, so
that others get the benefit of your questions.
If you choose so, you can post anonymously to
your classmates, the instructors will always
see the author of a post. If you wish to
communicate anonymously with the staff, please
use the private communication function on
Piazza.
The goal of Piazza is to generate discussion among students. The staff will monitor Piazza regularly and will try to respond to questions. However, we cannot guarantee a response especially for last minute questions before assignment deadlines and exams. Please use the following etiquette:
-
Post your question significantly before the deadline if you want a response from staff.
-
Monitor Piazza for answers to your classmates' questions and other
clarifications and announcements. Many students will have similar questions.
- Help answer each other's questions. We
will try to approve non-staff answers if they are correct and we have time.
Main Textbook: | Computer Networking (A Top-Down Approach Featuring the Internet), by J. F. Kurose and D. W. Ross, 6th or other editions, Addison-Wesley. |
|
Other Textbooks: | - Computer Networks: A Systems Approach, by Peterson and Davie, 5th edition, Morgan Kaufmann
- Computer Networks, A. S. Tanenbaum, 5th edition, Prentice-Hall
- UNIX Network Programming, by W. Richard Stevens, 3rd Edition, Addison-Wesley.
- Mathematical Foundations of Computer Networking, by S. Keshav, 1st Edition, Addison-Wesley
|
Homework Assignments:
There will be 3 homework assignments. The deadlines and
release dates are tentative and subject to change. Please
refer regularly to the course schedule for updates. All
assignments must be submitted online through compass by
11:59pm on the due date. Homework assignments are individual.
Each student should submit his or her own assignment.
You do not have to type your
assignments. You are allowed to write them, scan them and
submit a scanned pdf. However, if you choose to write it, make
sure it is clearly written. We will not correct anything we do not
understand. Do not print your assignment and bring
it to class. We will not accept it. Finally, different TAs are
responsible for different homework. Please direct your questions
to the TA in charge of each homework.
Homework: | Release Date | Due Date | TA in Charge |
1. Basic Concepts & Application Layer | Sep. 6 | Sep. 20 at 11:59pm | Suraj Jog |
2. Transport Layer: TCP, UDP | Sep. 20 | Oct. 11 at 11:59pm | Suraj Jog |
3. Link Layer | Nov. 15 | Dec. 4 at 11:59pm | Suraj Jog |
Programming Assignments:
There will be 4 homework assignments. The deadlines and
release dates are tentative and subject to change. Please
refer regularly to the course schedule for updates. All
assignments must be submitted through SVN by
11:59pm on the due date. Programming assignments can be done in groups of 2. Only
one needs to submit the assignment however, it should clearly indicate
who is the other student in the group is and have Group.txt file with only the netid of
each member on two lines. Different TAs are
responsible for different programming . Please direct your questions
to the TA in charge of each assignment.
All programming assignments solutions must be in C or C++.
However only C will be supported by the staff (meaning we
will not always answer code-related questions on C++). If you
choose to use C++, you are not allowed to use any socket
programming library, all the networking should be done using
the standard C API taught in class. Furthermore, if you need
to use a library for data structures, you must get the
approval of the course staff. Additionally, you must
acknowledge the source in a README. However, algorithms (e.g.
Dijkstra's) must be your own. It is your job to debug your
own code. The staff can answer general question. However,
we will not look at your code.
Programming Assignment: | Release Date | Due Date | TA in Charge |
0. Socket Programming | Aug. 28 | Never | Ashutosh Dhekne |
1. HTTP Client & Server | Sep. 13 | Oct. 2 at 11:59pm | Ashutosh Dhekne |
2. Congestion Control | Oct. 02 | Nov. 1 at 11:59pm | Ashutosh Dhekne |
3. Routing | Nov. 6 | Nov. 27 at 11:59pm | Ashutosh Dhekne |
4. Medium Access Control | Nov. 17 | Dec. 11 at 11:59pm | Ashutosh Dhekne |
Late Submission Policy:
You can hand in your homework and programming assignments late, but the total
amount of lateness summed over all the deadlines must not exceed 100 hours. You
must submit all homework assignments through compass and all programming assignments through SVN so we can
track the number of late hours. You can divide up your 100 hours among the
homework and programming assignments however you like; you don't have to ask or
tell us. We recommend that you try not to waste all the 100 hours on your first
assignment. You are not allowed to ask for any extensions!
- For Homework Assignments: If you don't hand in a homework at all, we'll give it an F. If you hand it in late, and your total late time (including the late time for that assignment) exceeds 100 hours, then we'll give it an F. Solutions for assignments will be released 100 hours past the deadline.
- For Programming Assignments: If you don't hand in an assignment at all, or don't hand it in by the last day of classes, we'll give the assignment an F. If you hand an assignment in late, and your total late time (including the late time for that assignment) exceeds 100 hours, and you hand it in by the last day of classes, then we'll give it a D.
Collaboration Policy:
The homework should be done individually. You are allowed to discuss the problems with other students. However, if you do, you must write your own homework solution and must explicitly state at the top of you solution the name(s) of students you discussed your solution with.
The programming assignments are in groups of two. You must write all the code you hand in for the programming assignments. You are not allowed to look at anyone else's solution. You may also discuss the assignments with other students, but you may not look at or use each other's code. Code plagiarism will be checked using an automated detector.
Academic Integrity:
The University of Illinois at Urbana-Champaign Student Code should also be
considered as a part of this syllabus. Students should pay particular
attention to Article 1, Part 4: Academic Integrity. Read the Code at the
following URL: http://studentcode.illinois.edu/.
Academic dishonesty may result in a failing grade. Every student is expected
to review and abide by the Academic Integrity Policy: http://studentcode.illinois.edu/.
Ignorance is not an excuse for any academic dishonesty. It is your
responsibility to read this policy to avoid any misunderstanding. Do not
hesitate to ask the instructor(s) if you are ever in doubt about what
constitutes plagiarism, cheating, or any other breach of academic integrity.
All students caught cheating will be reported with no exceptions to the College of Engineering through the
FAIR (Faculty Academic Integrity Reporting) system which will go on record.
Midterm & Final Exam:
There is one Midterm and one Final Exam. The final exam is comprehensive and
will cover all material presented in the class. The midterm will cover all
material up to the lecture before the exam. Both midterm and final are closed
book. You are allowed to bring a cheat sheet to the exams (1 double sided
letter paper for the midterm and 2 double sided letter paper for the final).
Further details about the midterm and final will be announced during the
course.
The Midterm is tentatively set for Oct. 23 at 6pm. There will be no class on that day.
If you have a conflict during this time, please let us know as soon as possible.
Mini-Project:
Students taking the class for 4 credits are required to do a mini-project and submit a term report. The project
can be done in groups of 2 or 3 but not 1. Students will first submit a 1 page project proposal by Nov 13 at 11:59pm. We
will then schedule a meeting to discuss and approve the projects. The final project report (~6 pages) will be
due by the final day of exams which is Dec. 22nd at 6pm.
More details
on the mini-project as well as project suggestions will be provided to the students at a later stage.
Grading:
| 3 credits | 4 credits |
Homework: | 15% | 10% |
Programming Assignments: | 30% | 25% |
Midterm Exam: | 25% | 20% |
Final Exam: | 30% | 25% |
Mini-Project: | 0% | 20% |
Note: This schedule is tentative and subject to change over time due to unforeseen events. Please check it regularly.
# |
Date |
Topics & Slides |
Notes |
1 |
Aug. 28 |
1.Introduction.pptx, 1.Introduction.pdf
Introduction: Course Overview & Logistics
|
|
2 |
Aug. 30 |
Introduction: Basic concepts: Network architecture, Network edge & core, performance, Protocol layers, Internet History
|
Programming Assignment 0 (Will not be graded)
Beej's Guide to Network Programming
|
|
Sep. 04 |
Labor Day (No Classes) |
|
3 |
Sep. 06 |
2.Application.pptx, 2.Application.pdf
Application Layer: Application Layer Principles
|
Homework 1 (Due Sep. 20) |
4 |
Sep. 11 |
Application Layer: Socket Programming, Web & HTTP
|
|
5 |
Sep. 13 |
Application Layer: Email, DNS |
Programming Assignment 1 (Due Oct. 02) |
6 |
Sep. 18 |
Application Layer: P2P, Video Streaming |
|
7 |
Sep. 20 |
3.Transport.pptx, 3.Transport.pdf
Transport Layer: Transport Layer Services, Multiplexing and Demultiplexing, UDP
|
Homework 1 Due
Homework 2 (Due Oct. 11) |
8 |
Sep. 25 |
Transport Layer: Reliable Data Transfer |
|
9 |
Sep. 27 |
Transport Layer: Reliable Data Transfer, TCP |
|
10 |
Oct. 02 |
Transport Layer: TCP |
Programming Assignment 1 Due
Programming Assignment 2 (Due Oct. 30) |
11 |
Oct. 04 |
Transport Layer: TCP Congestion Control |
|
12 |
Oct. 09 |
4.Network.pptx, 4.Network.pdf
Network Layer: Data Plane and Control Plane |
|
13 |
Oct. 11 |
Network Layer: Routers |
Homework 2 Due |
14 |
Oct. 16 |
Midterm Review Session |
|
15 |
Oct. 18 |
Network Layer: IP |
|
16 |
Oct. 23 |
Midterm Exam |
|
17 |
Oct. 25 |
Network Layer: Routing Algorithms |
|
18 |
Oct. 30 |
Network Layer: Intra-AS and Inter AS Routing |
|
19 |
Nov. 01 |
Netwokr Layer: SDNs, ICMP, Network Management |
Programming Assignment 2 Due |
20 |
Nov. 06 |
5.Link.pptx, 5.Link.pdf
Link Layer: Framing, Error Detection and Correction |
Programming Assignment 3 (Due Nov. 27) |
21 |
Nov. 08 |
Link Layer: Multiple Access Protocols |
|
22 |
Nov. 13 |
Link Layer: LANs |
Project Proposal Due (4 credit students) |
23 |
Nov. 15 |
Link Layer: VLANs |
Programming Assignment 4 (Due Dec. 11)
Homework 3 (Due Dec. 4) |
|
Nov. 20 |
Thanksgiving Vacation |
|
|
Nov. 22 |
Thanksgiving Vacation |
|
24 |
Nov. 27 |
Link Layer: |
Programming Assignment 3 Due (Nov. 27) |
25 |
Nov. 29 |
6.Wireless.pptx, 6.Wireless.pdf
Wireless: |
|
26 |
Dec. 04 |
Wireless: |
Homework 3 Due |
27 |
Dec. 06 |
Wireless: |
|
28 |
Dec. 11 |
7.Security.pptx, 7.Security.pdf
Security: |
Programming Assignment 4 Due |
29 |
Dec. 13 |
Final Review Session |
|
|
Dec. 18 |
Final Exam |
|
|
Dec. 22 |
Final Project Due |
Final Project Report Due (4 credit students) |
|