Understanding how networked systems communicate, from physical transmission to application protocols. Covers the Internet architecture, TCP/IP, routing, network security, and protocols that enable modern distributed applications.
Required:
- Programming - Ability to work with network APIs and protocols
Recommended:
- Operating Systems - Understanding of system-level concepts helps with network programming
- Computer Architecture - Understanding of hardware/software interaction
- C (Intermediate) - Socket programming and low-level network operations
- Python (Beginner to Intermediate) - Network scripting and protocol implementation
- Any modern language - Network concepts apply across languages
- Computer Networking: A Top-Down Approach by James Kurose and Keith Ross (8th Edition)
- Excellent pedagogical approach starting from application layer
- Clear explanations with practical examples
- Well-regarded as the best introductory networking text
- Level: Intermediate
- ISBN: 978-0135928615
- Institution: Stanford University
- Platform: Stanford course site
- Description: Comprehensive networking course covering protocols, Internet architecture, and implementation
- Modern, well-structured lectures
- Wireshark Labs - Packet analysis exercises from Kurose/Ross
- Beej's Guide to Network Programming - Practical socket programming guide
-
Source: Wireshark Labs (from textbook)
-
Difficulty: Intermediate
-
Estimated time: 3-5 hours per lab
-
Topics: HTTP, DNS, TCP, UDP, IP, Ethernet, wireless protocols
-
Description: Hands-on packet capture and analysis to understand protocols in action
-
Source: Textbook end-of-chapter problems
-
Difficulty: Intermediate
-
Topics: Protocol design, performance analysis, network architecture
- Implement network protocols (reliable transport over UDP)
- Build networked applications (chat server, HTTP server)
- Complete Stanford CS 144 labs if available
[Personal notes and key insights can be added here during study]
- Completed Computer Networking: A Top-Down Approach
- Watched Stanford CS 144 lectures or equivalent
- Finished Wireshark labs
- Implemented network programming projects
- Review and reinforcement