CS2910
Schedule
This is an old version of this course, from Fall 2014. A newer version is available here.
Jump to the Current Week
Week 1 (09/08-09/12)
- Lecture 1:
- Course introduction
- Data encoding
- Video:
- In-class Quiz
- Class exercise
- Lab:
- Assignment (due before the start of lab on Tuesday of week 1):
- Watch video: Principles of network applications
- (optional) Read textbook, Section 1.5 (through 1.5.2)
- Complete Quiz
- Lab exercises:
- Wireshark is a "packet sniffer" that supports logging and analysis of network traffic.
In this course, we will use it as a tool to learn about network protocols and to find and fix problems with network applications, like using an oscilloscope to study the behavior of an electronic circuit.
- Download the Wireshark application from the web site (www.wireshark.org) and install it on your computer.
- Lab 1: Experiment with Wireshark packet sniffer and submit handout
- You may find some of these videos helpful:
- Install Python development environment
- Go to the Python Windows downloads page
- Select the latest Python 2 (not Python 3) installer (e.g., Python 2.7.8)
- On the Python release page, download an appropriate MSI Installer for your Windows environment (i.e., X86 or X86-64).
- Invoke the installer package to install Python on your system.
- Add the Python install directory to your system path using these instructions, sections 3.3 and 3.3.2.
- Wireshark is a "packet sniffer" that supports logging and analysis of network traffic.
In this course, we will use it as a tool to learn about network protocols and to find and fix problems with network applications, like using an oscilloscope to study the behavior of an electronic circuit.
- Assignment (due before the start of lab on Tuesday of week 1):
- Lecture 2:
- Assignment (due before the start of class on Thursday of week 1):
- Watch videos:
- Complete Quiz
- Class Exercises
- Layers in the Protocol Stack
- Data Encoding, Part 2
- Assignment (due before the start of class on Thursday of week 1):
Week 2 (09/15-09/19)
- Lecture 1:
- Assignment
- (None)
- Class exercise
- Continuation of Data Encoding, Part 2
- Assignment
- Lab:
- Assignment (due before the start of lab):
- Watch videos:
- Read textbook, Section 2.1 (through 2.1.6)
- Read textbook, Section 2.7 (through 2.7.1)
- Complete Quiz
- Lab exercises:
- In-class paper quiz 1 over exercises done in class so far.
- Sending UDP messages in Python
- The deadlien for turning in the reworked problem is Monday of Week 5
- Assignment (due before the start of lab):
- Lecture 2:
- Assignment (due before the start of class):
- Watch videos:
- (No online quiz)
- In-class paper quiz 1 (postponed from Tuesday to this class)
- Class exercise
- Python basics
- Python data encoding
- Assignment (due before the start of class):
Week 3 (09/22-09/26)
- Lecture 1:
- Class exercise
- Continuation of Python data encoding exercise
- Class exercise
- Lab:
- Assignment (due before the start of lab):
- Watch video:
- Online Quiz
- Lab 2b: Network programming: TCP
- tcp.py
- Turn in the lab electronically at Turn-in page by Week 3, Thursday, 11pm
- Read textbook, Section 2.7.2
- Assignment (due before the start of lab):
- Lecture 2:
- Assignment (due before the start of class):
- Watch videos:
- Read textbook, Section 2.2 (through 2.2.6)
- Review the HTTP protocol specification
- Complete Quiz
- Class exercise
- Reading a protocol specification
- What is the HTTP date/time stamp format? What time zones may be used?
- When is a
Content-Length
header forbidden? - What should an HTTP/1.1 client do if it does not know how to handle "chunked" transfer encoding?
- What does an
If-Modified-Since
header do? - What is the most common form of
Request-URI
? What other forms are defined? - What is escaped encoding ("% HEX HEX") in a
Request-URI
? What RFC defines it? - In an HTTP response, what is the difference between "Moved Permanently" and "Temporary Redirect" status?
- How is the
Location
header used? - How does "pipelining" work with persistent connections?
- What is the difference between GET and HEAD methods in an HTTP request?
- Reading a protocol specification
- Assignment (due before the start of class):
Week 4 (09/29-10/03)
- Lecture 1:
- Assignment
- (None)
- Class Exercise
- Chunking in HTTP
- Assignment
- Lab:
- Lab 3: Simple HTTP client
- Lecture 2:
- Assignment (due Before 9am on the day of class):
- Watch videos:
- (Optional) Read textbook, Section 2.5 (through 2.5.3)
- Complete Quiz
- DNS
- Assignment (due Before 9am on the day of class):
Week 5
- Lecture 1
- Lab
- Rework: Design for Lab 3.
- Lecture 2
- Class Activities
- Review:
- See slides page for PDF's of all exercises and paper quizzes up through this date.
- Review of video content
- Threading:
- Lecture: Brief intro to threading
- ex5_2_threading_example_start.py - Start of threading exercise. Warning: This program occassionally crashes computers when
range
is used instead ofcount
orxrange
, by using up all remaining memory.
- Review:
- Class Activities
Week 6
- Lecture 1
- Midterm Exam
- Lab
- Lab Exercises
- Lab 4 Handout -- HTTP Server
- Lab 4 Submission Page
- Lab Exercises
- Lecture 2
- Assignment (due before 8:30AM on the day of class)
- Watch videos
- Email protocols
- Sending email (SMTP)(old video)
- Sending email (SMTP) (new video 1)
- Sending email (SMTP) (new video 2)
- Note: The new videos replace the old one. The old video is covered on the quiz. The new videos are not covered on the quiz for tomorrow, but they will be very useful for this week's lab. You can probably answer all of the questions on the quiz by watching the new videos instead of the old.
- Take quiz
- Watch videos
- Assignment (due before 8:30AM on the day of class)
Week 7
- Lecture 1
- Assignment (due before 8:30AM on the day of class)
- Watch videos
- Sending email (SMTP) (new video 1)
- Sending email (SMTP) (new video 2)
- Take Quiz (Only question is the "what further questions do you have." This question is required.)
- Watch videos
- Class Exercise
- Creating and interpreting SMTP sessions
- Assignment (due before 8:30AM on the day of class)
- Lab
- (Postponed 'til Thursday) Paper Quiz 3: Email protocols, SMTP, SMTP with SSL/TLS or STARTTLS
- Lab 5: Sending email with SMTP
- Lecture 2
- Assignment (due before 8:30AM on the day of class)
- Watch videos:
- Complete Online Quiz
- Class exercise
- Paper Quiz 3: Email protocols, SMTP, SMTP with SSL/TLS or STARTTLS
- Fetching email with IMAP
- Assignment (due before 8:30AM on the day of class)
Week 8
- Lecture 1
- No Assignment
- Exercise
- IMAP with Python
- Lab
- Lab 6: Fetching email messages
- Lecture 2
- Assignment (due before 8:30AM on the day of class)
- Watch videos:
- Take online Quiz
- Take anonymous survey
- Class exercise
- TCP timeout,
RTT estimate calculation
- TCP timeout,
- Assignment (due before 8:30AM on the day of class)
Week 9
- Lecture 1
Assignments (due before 8:30AM on the day of class)Watch videos:IP protocol- IPv4 addressing and DHCP
- Network address translation (NAT and UPnP)
- Class exercise
- Congestion control
- Router buffering effects
- Lab
- Lab 7: TCP Basics (Assignment handed out in hard-copy; due in class, Thursday of Week 9)
- Lecture 2
- Assignments (due before 8:30AM on the day of class)
- Watch videos
- Take online quiz (ask a question about the video)
- Class exercise
- Symmetric and Public Key Cryptography
- Cryptography for privacy & authentication
- Cryptographic attacks
- Assignments (due before 8:30AM on the day of class)
Week 10
- Lecture 1
- Assignments (due before 8:30AM on the day of class)
- Watch videos:
- Modular Arithmetic
- How RSA works (Links to Dr. Sebern's summary, which links to the same video on Youtube as before.)
- (Optional) Read pp. 684-688 of the text.
- Take online quiz
- Watch videos:
- Class exercise
- Modular Arithmetic
- RSA public-key cryptography
- Public-key cryptography with RSA
- Assignments (due before 8:30AM on the day of class)
- Lab
- Paper Quiz on TCP, Cryptography, and RSA.
- Lab 8: Privacy, authentication, and attacks with RSA
- Lecture 2
- Continuation of Lab 8
- Network utilities
Exam week
- Final exam - Wednesday 11am-1pm L309 (both my sections) (19 Nov 2014)
Acknowledgement: Original schedule created by Dr. Sebern