This is an old version of this course, from Fall 2016. A newer version is available here.
See also the day-by-day slides, where I will place the lecture slides as we use them throughout the quarter.
(opt) is an abbreviation for (optional).
References to the text are to our required text, Computer Networking: A Top-Down Approach, 7th ed., James F Kurose and Keith W Ross, Pearson, © 2017. (6th edition © 2013.) You can see the differences between the editions in the front cover of the 7th edition, available at the MSOE bookstore. One difference that affects our class: The new version uses Python 3, the old version uses Python 2. Both editions include and explain Python code on about 6 pages, and it is the text's use of Python that prompted us to transition the whole course to the Python language. We will use Python 3 exclusively this quarter. If you hover over the required readings, it will show the reading in both the 7th and 6th editions of the text.
The labs are numbered by the week in which the lab is due during the lab period. Thus, the Week 2 Lab and Lab 2 are the same lab. I will avoid using terms like "The 1st lab" since there is no Lab 1, and it would be confusing to call Lab 2 the first lab.
Week | Day | Topics | Preparation | Lab |
---|---|---|---|---|
1 |
1 | Course Introduction
The Internet Stack Packet Encapsulation Binary numbers | (each assignment due 9 am on the day of class) | (Lab time used for lecture) |
2 | Binary numbers
Data encoding | (opt) Data Encoding, part 1
(opt) Principles of network applications (opt) text, Protocol Layers and their Service Models | ||
3 | Introduction to Python | Install Python 3
Install PyCharm (opt) Python programming introduction, part 1 (opt) Python programming introduction, part 2 | ||
2 |
1 | Data encoding in Python
Parsing and Procedural Design | Lab 2: UDP | |
2 | Parsing and Procedural Design | |||
3 | (margin) | |||
3 |
1 | UDP and TCP | (opt) Introduction to Python network programming (UDP, TCP)
(opt) text, Principles of Network Applications (opt) text, Socket Programming with UDP (opt) text, Transport-layer Services & Multiplexing and Demultiplexing (opt) text, Connectionless Transport: UDP (opt) text, (opt) text, Connection-Oriented Transport: TCP | Lab 3: Parsing |
2 | What is a protocol?
Reading a protocol specification | (opt) What is a protocol? | ||
3 | HTTP | |||
4 |
1 | HTTP, continued | (opt) Introduction to HTTP protocol, part 1
(opt) Introduction to HTTP protocol, part 2 (opt) Introduction to HTTP protocol, part 3 (opt) text, The Web and HTTP (opt) Review the HTTP protocol specification | Lab 4: TCP |
2 | Bring laptop and start
DNS | (required) Introduction to DNS, part 1a
(opt) Introduction to DNS, part 1 (a-b) (opt) text, DNS—The Internet's Directory Service (required) Complete Quiz |
||
3 | Bring laptop and start
DNS Half-exam exam review | |||
5 |
1 | Half Exam 1
Unicode and UTF-8 | Lab 5: HTTP client | |
2 | Unicode and UTF-8 | Online Quiz - Finding an interesting character | ||
3 | Unicode and UTF-8 with Python
Internet message (email) encoding URL encoding | (opt) Data Encoding, part 2
(opt) Data Encoding, part 3 (in-class) In-class demo |
||
6 |
1 | Intro to mail protocols
SMTP | Install Thunderbird mail client
(opt) Email protocols (opt) Sending email (SMTP) (opt) Sending email (SMTP) | Lab 6: HTTP Server |
2 | IMAP | (opt) Fetching email (IMAP) | ||
3 | IMAP with Python | (in-class) Python exercise | ||
7 |
1 | Half Exam 2
TCP timeout, RTT estimate calculation | (opt) TCP protocol
(opt) text, Principles of Congestion Control | Lab 7: SMTP |
2 | Congestion control
Router buffering effects | |||
3 | Cryptography | Cryptography in network protocols
(opt) Public key cryptography introduction Take online quiz (ask a question about the video) (opt) text, Security in Computer Networks (opt) text, Principles of Cryptography (opt) text, Wired Equivalent Privacy (WEP) | ||
8 |
1 | Modular Arithmetic
Public-Key Cryptography: RSA | Modular Arithmetic
(opt, but not on a topic we discuss in the course (opt, While it relies on some concepts from the previous video, it gives an alternative perspective on RSA that you may find helpful. (opt, all the way through, what I see while skimming it is right on topic with what RSA is really all about. It even addresses the question Why not just factor n to find p and q? (opt) text, Public Key Encryption (opt) text, Message Integrity and Digital Signatures Take online quiz | Lab 8: TCP Implementation |
2 | RSA
SSL/TLS | How RSA works
(opt) text, Public Key Encryption (opt) text, End-Point Authentication (opt) text, Securing E-Mail (opt) text, Securing TCP Connections: SSL (opt) text, Securing Wireless LANs online quiz | ||
3 | SSL/TLS | |||
9 |
1 | Public Key Infrastructure | Lab 9: RSA | |
2 | Public Key Infrastructure | |||
3 | IP and MAC addresses | |||
10 |
1 | The network layer | Lab 10: Public Key Infrastructure | |
2 | Firewalls | |||
3 | Review | |||
11 |
TBA Common Final Exam |
This course is based on an earlier offering by Dr. Mark Sebern