TWiki> CS450 Web>WebHome (2015-09-25, Main.ckanich)EditAttach

This page is for the Spring 2013 offering of CS 450. If Prof. Kanich is teaching the class this semester, you will find the link to the course web page here.

Introduction to Networking

Syllabus - CS450 Introduction to Networking

Meets: 2-3:15 pm TR, in 2SES 238
Instructor: Prof. Chris Kanich <>
Book: Kurose and Ross - Computer Networking: A Top-Down Approach, 6th Edition
Office: SEO 1109
Office hours: Tuesday 3:30-4:30, Wednesday 10-11, and by appointment
Discussion Board:

TA: Yanzi Jin <>
Office: ERF 2054
Office hours: Wednesday 2-4 pm


By the end of this course, you will have a good understanding of the main elements that work together to form the Internet. You will have acquired some familiarity with standard diagnostic tools, network application development, and typical network designs and configurations. In addition, you will have caught a glimpse of more advanced networking concepts and research directions.

Evaluation will be done through in class quizzes, a midterm, a final, and 8 homeworks.


This class is programming intensive, with most assignments done in C. CS385 or equivalent is a required prerequisite: concurrent enrollment only with instructor consent, and not recommended. If you took CS385 but struggled in it, you may want to reconsider taking this class until you have gained a bit more experience with low-level programming and UNIX environments.

If you are a graduate student and are not required to take CS385, I suggest you watch (at least) the first several lectures of CS385 from last spring, where C programming is discussed. You'll find the recordings here.


This course will be taught using Peer Instruction, a teaching model which places stronger emphasis on classroom discussion and student interaction.


Grades are curved based on an aggregate course score. There are separate curves for graduate and undergraduate students. This means that the course score cut-offs for an A, B, C etc. are not defined ahead of time: these will be set after the end of the course.

The course score consists of the below components:

  % of total grade
Reading Quizzes 5
Class Participation 5*
Homeworks 35
Midterm 25
Final 30


Reading quizzes will be given at the beginning of each class period using iClickers. Everyone will have their lowest three quiz scores dropped.


Participation is an incredibly important facet of this course. The baseline Class Participation grade will be based off of participating in classroom discussion questions. Your class participation grade can grow to a maximum of 10 through exceptional participation. The expected score in this category is 5: additional points are a bonus reserved for substantial contributions, entirely at the instructor's discretion. Exceptional participation includes early reports of errors in assignments, helpful discussion on Piazza, and clarifying or interesting questions during lecture.


Homeworks will consist of approximately eight programming projects with duration between one and two weeks.


Late assignments will be penalized by subtracting a percentage of the total possible score from the achieved score. Extra credit will not be awarded for early turnins.

x hours late Penalty
x < 12 10%
12 <= x < 24 25%
24 <= x < 48 50%
x >= 48 100%


Consulting with your classmates on assignments is encouraged, except where noted. However, turn-ins are individual, and copying code from your classmates is considered plagiarism. For example, give the question "how did you do X?", a great response would be "I used function Y, with W as the second argument. I tried Z first, but it doesn't work". An inappropriate response would be "here is my code, look for yourself".

To avoid suspicion of plagiarism, you must specify your sources together with all turned-in materials. List classmates you discussed your homework with and webpages from which you got inspiration or copied (short) code snippets. All students are expected to understand and be able to explain their turned-in materials. Plagiarism and cheating, as in copying the work of others, paying others to do your work, etc, is obviously prohibited, is grounds for failing the course, and will be reported.

TOPICS COVERED (tentative)

  • Constituent parts of the Internet
  • Layered network model
  • The innards of Web / email / bittorrent
  • Domain Name Services (DNS)
  • Networking APIs for application developers
  • Common network diagnostic tools
  • Network performance - throughput, delay and packet loss
  • Transport layer services
  • TCP - Reliability & Congestion Control
  • IPv4/IPv6 Addressing / Routing
  • Inter/intra domain routing protocols
  • Network address translation
  • Routing in fixed and ad-hoc wireless networks
  • Mobility and the Internet
  • Introduction to Network Security - Botnets, DoS/DDoS, Viruses and Worms
  • Multicast and Anycast mechanisms
  • Multiple access control techniques
  • Physical layer overview - modulation, coding
  • Error detection and correction
  • The UNIX command line

Homework and Exam Schedule

Homeworks marked (DRAFT) are close to being finalized, but subject to change until the marking is removed. Feel free to get started, but expect to have to make some changes later on.

  Due 2 pm on...
1. VMWare, Subversion and a Simple Web Client 1/24
2. Roll-Your-Own Multi-Threaded Web Server 2/5
3. Talking to the Domain Name System 2/21
Midterm on 2/28  
4. An event-based BitTorrent client 3/12
5. Reliable transport over an unreliable link 3/21
6. High-performance transport over an unreliable link 11:59 PM 4/5
7. Roll-Your-Own Router: Forwarding Packets 4/18
8. Roll-Your-Own Router II: Bufferbloat 4/30
Final sometime the week of May 6  

Lecture Notes and Recordings

Notes are available at svn:// (PDF format).
Readings are from Kurose & Ross unless otherwise noted.

Intro & Application Layer

Week Day Description Required Readings Announcements
1 January 15 Introduction to the Internet, Homework environment    
1 January 17 4 layer Internet model, Socket Programming K&R 1.1, 1.5, 1.6 recommended reading: beej 4,5
2 January 22 HTTP 2.2  
2 January 24 Network Applications, Transport Services 2.1 Hw1 due before class
3 January 29 Threading, Security 2.4  
3 January 31 Naming 2.5  
4 February 5 Email/SMTP no quiz, review 2.4 Hw2 due before class
4 February 7 Peer to Peer, BitTorrent, DHTs, Distributed Consensus 2.6  

Transport Layer

Week Day Description Readings Announcements
5 February 12 UDP, DNS Vulnerabilities 3.3  
5 February 14 Reliable Transport 3.4  
6 February 19 Reliable Transport in TCP 3.5 - 3.5.4  
6 February 21 Congestion Control 3.6 Hw3 due 2pm February 22
7 February 26 socket progrmaming with select, Midterm Review 3.7 recommended reading for hw4: Beej 7.2
7 February 28 Midterm    

Network Layer

Week Day Description Readings Announcements
8 March 5 Network Layer Intro, Circuits vs. Packets 4.1.1-4.2.2  
8 March 7 Routers, Internet Protocol 4.3-4.4.2  
9 March 12 ICMP, IPv6 4.4.3-4.4.5 Hw4 due before class
9 March 14 Routing Algorithms 4.5  
10 March 19 More routing quiz on hw5 concepts  
10 March 21 Traffic Management 7.5.1-7.5.2 Hw5 due before class
SB Spring Break      

Link, Physical, & Human Layers

Week Day Description Readings Announcements
11 April 2 Link Layer 5.1-5.2  
11 April 4 Media Access 5.3 Hw6 due 11:59 PM Friday April 5
12 April 9 Switches and LANs 5.4-5.4.3  
12 April 11 Datacenter Networking 5.5-5.6  
13 April 16 Physical layer Videos (posted to Piazza)  
13 April 18 HW 8 intro, wrap up physical layer Same videos Hw7 due before class
14 April 23 Internet measurement with shell scripting   Guest lecture by Prof. Eriksson
14 April 25 Wireless Links   Guest lecture by Prof. Eriksson
15 April 30 Security, Cryptography   Hw8 due before class
15 May 2 Wrap up & Final Review    
16 May 8 (Weds) Final Exam 3:30 PM - 5:30    
Topic revision: r14 - 2015-09-25 - 18:18:07 - Main.ckanich
Copyright 2016 The Board of Trustees
of the University of
Helping Women Faculty Advance
Funded by NSF