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. There are no legal PDFs of our textbook. Please do not use them!
The labs are numbered by the week in which the lab starts. Thus, the Week 7 Lab and Lab 7 are the same lab.
Week | Day | Topics | Preparation | Lab |
---|---|---|---|---|
1 |
1 | Binary numbers | (Electronic assignments are due at 8am on the day of class) | Lab 1: UDP |
2 | Binary numbers
Data encoding | (opt) Data Encoding, part 1 | ||
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 | Watch Python's Internal Encoding and take the quiz embedded in the video | Lab 2: Encoding |
2 | Parsing and Procedural Design | |||
3 | The Internet Stack
Packet Encapsulation | (opt) text, Protocol Layers and their Service Models (opt) Principles of network applications | ||
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 | |||
3 | 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 |
||
5 |
1 | Unicode and UTF-8 | Lab 5: HTTP Client | |
2 | Unicode and UTF-8 | |||
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 | Lab 7: SMTP | ||
2 | ||||
3 | ||||
8 |
1 | Cryptography | Cryptography in network protocols
(opt) Public key cryptography introduction Take online quiz IN VIDGRID (opt) text, Security in Computer Networks (opt) text, Principles of Cryptography (opt) text, Wired Equivalent Privacy (WEP) | Exercise: TCP |
2 | 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 | ||
3 | 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 | ||
9 |
1 | Public Key Infrastructure | Lab 8: RSA | |
2 | Public Key Infrastructure | |||
3 | SSL/TLS | |||
10 |
1 | TCP timeout, RTT estimate calculation | (opt) TCP protocol
(opt) text, Principles of Congestion Control | Lab 9: Public Key Infrastructure |
2 | Ethics | |||
3 | Review | |||
11 |
TBA Common Final Exam |
This course is based on an earlier offering by Dr. Mark Sebern