EECS 3214 M, Winter 2020

Computer Network Protocols & Applications

     Lecture Schedule:   T and R, 10:00 - 11:30,  LSB 05
     Instructor:                  Natalija Vlajic
     E-mail:                          vlajic @
     Office Hours:             Tuesday,  13:00 - 14:00,  LAS 2047

     TA Office Hours:       Friday, 12:00 - 13:30, LAS 3017


  • FAQ Link containing compilation of answers to most common questions related to the course material starting March 16.
  • Zoom link for 'virtual office hours' on Thursdays 13:00 - 14:00 (Mar 19, 26 and Apr 2). (Password: 3214)
  • TA contacts:  Chenxing Zheng  (email: cxing95 @ ,    Mamta Narang  (email: mnarang @

  • May 17:   Final Exam solutions can be found here.
  • Apr 19:  Socket Programming Project grades are now available through ePost.
  • Aug 13:  IMPORTANT - final exam will be conducted through York Moodle! (You should have received an email with more specific instructions about the format of the final exam.)
  • Apr 09:  Assignment 4 grades are now available through ePost (use your Passort-York credentials to log in). Sample solutions for Assignment 4 are provided here.
  • Apr 04:  Assignment 3 grades are now available through ePost (use your Passort-York credentials to log in). Sample solutions for Assignment 3 are provided here.
  • Mar 29:  Socket Programming Project is now available! Due date: Friday, April 10! The project is a simple hands-on exercise on socket programming in Java. Your code for this project should be submitted using the EECS's deparment submit utility. Prior to the submission, place all three files related to the project into a directory named WoW (the provided and WoW.txt, as well as your Subsequently, use the following instruction to submit the entire WoW directory:  % submit 3214 JavaProject WoW.
  • Mar 27:  Assignment 4 is now available. Due date:  Tuesday, April 7! The assignment is a simple hands-on exercise about the DNS protocol, and should be attempted only once you have reviewed the lecture on DNS. Your solutions should be emailed to:
  • Mar 26:  Assignment 2 grades are now available through ePost (use your Passort-York credentials to log in).
  • Mar 16:  Assignment 3 is now available. Due date:  Thursday, March 26! Your solutions should be emailed to:
  • Mar 15:  *** IMPORTANT:  An email entitled "EECS 3214: info on how the course will proceed from March 16" has been sent to the entire class. Please check your accounts for this email! ***

  • Mar 03:  Midterm solutions are available here.
  • Mar 03:  An iPad was found in the lecture hall after today's class. Please contact the instructor for further details.
  • Mar 02:  Midterm grades are now available through ePost.
  • Feb 26:  A good Wireshark 'how-to' link:
  • Feb 25:  Assignment 2 is now available. Due date:  Thursday, March 12, noon! Your assignment solutions should be dropped off in the EECS 3214 drop-off box located in the Lassonde lobby. 
  • Feb 22:  Assignment 1 grades are now available through ePost (use your Passort-York credentials to log in).
  • Feb 13:  Reminder! Midterm exam will be held on Monday, Feb 25, at the beginning of lecture. PLEASE ARRIVE ON TIME! The exam will be closed book and closed notes, and will cover all the material discussed in class up to and including the lecture of Feb 13. The use of a simple calculator is allowed.
  • Feb 03:  *** The issue with the download-link for Riverbed Modeler is now resolved! ***
  • Feb 03:  Sample midterm exam:  Midterm, Midterm_solutions.
  • Jan 31:  Starting next week, 2 TAs will be available to answer your questions about Lab-Assignments every Friday, from 12:00 - 13:30, in LAS 3017.
  • Jan 30Assignment 1 is now available. Due date:  Thursday, Feb 13, in class. Copies of Riverbed Modeler are available on a number of machines in LAS 1002 - as enlisted here.
  • Jan 28:  A useful introduction to Riverbed Modeler Academic Edition can be found here.
  • Jan 21:  Video and audio recording of the 3214 lectures is strictly prohibited.
  • Jan 07:  Classes start.

Course Information:
Course Description
Grading Scheme
Textbook and Recommended Resources
Course Schedule (Week-by-week Topics Covered, Notes, Required Reading, Assignments)

Course Policies:
Late Assignments and Missed Midterm
Academic Honesty

Course Schedule

Topic / Notes
Required Reading
Assignments / Important Dates
T, Jan 7
Course Introduction

R, Jan 9
Packet vs. Circuit Switching - part 1  Kurose - Sections 1.1, 1.2, 1.3

T, Jan 14
Packet vs. Circuit Switching - part 2
Layered Architecture - part 1
Kurose - Sections 1.5

R, Jan 16
Layered Architecture - part 2 -||-

T, Jan 21
Additional Slides on Layered Architecture
Layered Architecture - part 3

R, Jan 23
Network Layer / IP - part 1  Kurose - Sections 4.3
T, Jan 28
Network Layer / IP - part 2 -||-

R, Jan 30
Packet Scheduling
Packet (Queueing) Delay - part 1
 Kurose - Sections 4.2.5
Kurose - Sections 1.3
Assignment 1
(due date Feb 13)

T, Feb 4
Packet (Queueing) Delay - part 2 -||-

R, Feb 6
IP Addressing and Subnetting - part 1
Kurose - Section 4.3.3

T, Feb 11
IP Addressing and Subnetting - part 2
Network Address Translation (NAT)
Kurose - Section 4.3.4

R, Feb 13
Unicast Routing - part 1 Kurose - Sections 4.2 and 5.1 - 5.4
Reading Week (Feb 15 - Feb 21)
T, Feb 25
Midterm Exam

Assignment 2
(due date Mar 12)

R, Feb 27
Unicast Routing - part 2
Routing Protocols
T, Mar 3
Midterm Solutions
Kurose - Section 5.6

R, Mar 5
TCP basics - part 1 Kurose - Sections 3.2, 3.3.1, 3.3.2, 3.5.1, 3.5.2, 3.5.6
T, Mar 10
TCP basics - part 2
TCP flow control - part 1
Kurose - Sections 3.5.3, 3.5.4, 3.5.5

R, Mar 12
TCP flow control - part 2 -||- Mar 13 - last day to drop courses
T, Mar 17
TCP flow control - part 3
lecture transcript
TCP congestion control
lecture transcript
Kurose - Sections 3.6, 3.7
Assignment 3
(due date Mar 26)

R, Mar 19 Socket Programming - part 1
lecture transcript
Kurose - Sections 2.7
T, Mar 24
Socket Programming - part 2
lecture transcript

R, Mar 26 DNS Protocol
lecture transcript
Kurose - Sections 2.4 Assignment 4
(due date April 7)
T, Mar 31
HTTP Protocol - part 1
lecture transcript
Kurose - Sections 2.2

R, Apr 2
HTTP Protocol - part 2
lecture transcript
Final Exam:  Fri, April 24, 9:00

"Computer Networking: A Top-Down Approach Featuring the Internet", J. F. Kurose and K. W. Ross, Addison Wesley, 2018, 7th edition.
"Computer Networks: A Systems Approach - Network Simulation Experiments Manual", E. Aboelela, Morgan Kaufmann, 2012, 3rd edition. (optional)

Recommended Reading Material
"Computer Networks: A Top-Down Approach", B. A. Forouzan, F. Mosharraf, McGraw Hill, 2012. Excellent book!
"Data Communications and Networking", B. A. Forouzan, McGraw Hill, 2013, 5th edition. Excellent book!
"TCP/IP Protocol Suite", B. A. Forouzan, McGraw Hill, 2009, 4th edition.  Excellent book!
"Data and Computer Communications", W. Stallings, Prentice Hall, 2014, 10th edition.
"Computer Networks: A Systems Approach", L. L. Peterson, B. S. Davie, Morgan Kaufmann, 2012, 5th edition.
"Learning Network Programming with Java", R. Reese, Packt Publishing, 2015.
"Java Network Programming", E. R. Harold, O'Reilly Media, 2013, 4th edition.
"The TCP/IP Guide", Charles M. Kozierok.

Other Resources
Riverbed Modeler (Academic Edition)


Prerequisites:  General Prerequisite.

Course Description

This course focuses on the higher-level network protocols, security issues, network programming, and applications. Topics covered include networking basics; queuing fundamentals; network layer protocols including ICMP, DHCP and ARP multicasting; transport layer UCP and TCP, sockets and socket programming; application layer protocols including HTTP and DNS; multimedia; security; VOIP.

Grading Scheme

16%   4 Lab Assignments (4% each)
 9%   Java Socket Programming Project
35%   Midterm Exam
40%   Final Exam

Late Assignments and Missed Midterm

Late assignments will not be accepted, unless a prior arrangement is made with the instructor.
Makeups of missed midterm exams are only possible in extremely exceptional situations (such as verifiable medical emergencies) or by arrangement well prior to the exam, provided there is an extremely compelling reason.

Academic Honesty

"The Department takes the matter of academic honesty very seriously. Academic honesty is essentially giving credit where credit is due. And not misrepresenting what you have done and what work you have produced. When a piece of work is submitted by a student it is expected that all unquoted and uncited ideas and text are original to the student. Uncited and unquoted text, diagrams, etc., which are not original to the student, and which the student presents as their own work is considered academically dishonest."
For more see:  Department of Computer Science Academic Honesty Guidelines