Resources
Lecture Slides
| Topic | Download | 
|---|---|
| Intro | PDF (10MB) | 
| Application Layer - HTTP | PDF (5MB) | 
| Sockets | PDF (5MB) | 
| Lab Essentials | PDF (6MB) | 
| Application Layer - Email and DNS | PDF (4MB) | 
| Parallel Network Programming | PDF (5MB) | 
| Transport Layer | PDF (6MB) | 
| Advanced HTTP | PDF (2MB) | 
| IP Layer | PDF (2MB) | 
| Global Communication | PDF (5MB) | 
Find other good references? Email me to have them added to this page!
HTTP References
- List of HTTP Header Fields
 - Generate fake HTTP requests, and view actual HTTP response from real server
 - Reliply.org: View real HTTP request sent by your browser to their server
 - Google Chrome Developer Tools (built-in to web browser) can show HTTP requests and HTTP responses for all objects on a web page
 - Enter the developer tools mode, select the Network panel, and then the Header sub-panel
 - Fiddler: Web debugging proxy
 - Concurrent Programming for Scalable Web Architectures: Good background reading
 
Socket Programming References
- Beej's Guide to Network Programming: Using Internet Sockets - C code, and great overall discussion of socket usage
 - Programming IP Sockets on Linux: Part 1 and Part 2 (Note that Python code examples are from older 2.x language)
 - Programming UNIX Sockets in C - Frequently Asked Questions
 - Python Network Programming (Note that code examples are from older 2.x language)
 
Python Programming References
- Python documentation - Official
 
- Python Language Reference - Official
 - Python Standard Library - Official
 - Argparse: http://docs.python.org/3/library/argparse.html
 - Queue (thread-safe): http://docs.python.org/3/library/queue.html
 - String functions: http://docs.python.org/3/library/stdtypes.html
 - Sockets: http://docs.python.org/3/library/socket.html and http://docs.python.org/3/howto/sockets.html
 - Struct: http://docs.python.org/3/library/struct.html
 - Threading: http://docs.python.org/3/library/threading.html
 - Multiprocessing: http://docs.python.org/3/library/multiprocessing.html
 - Tkinter (GUI): http://docs.python.org/3/library/tk.html
 - Tkinter (GUI) references:
 
C Programming References
- C Language Tutorial from Drexel University
 - Beej's Guide to C Programming
 - Essential C Guide from Stanford University
 - C Programming Tips for C++ Programmers
 - C Programming on Wikibooks
 - Tutorial on threads, locks, and synchronization
 - Programming in C: UNIX System Calls and Subroutines
 - Basic Valgrind Tutorial - Using Valgrind to detect memory errors, including leaks, reading/writing beyond end of array, etc...
 
Linux Programming References
- Linux Tutorial for Programmers by our own Dr. Bill Ford in CS
 - Useful sections for this course include Linux files and directories (Ch 1), commonly-used commands (Ch 2), and redirection and pipes (Ch 3)
 
Networking
