/computer-networking-study

Learning computer networking through projects and readings

Primary LanguageGo

Computer Networking Self-Study

Since computer networking is a vast and deep subject, I wanted to at least get a start understanding how it all works under the hood. I also wanted to take a programming approach as it seems like the standard advice is to build projects that implement various RFCs or play around with Wireshark. I will also be using this as an opportunity to dive deep into Go.

  1. Beej's Guide to Networking Programming
  2. Online courses (pick one)
  3. Supplement that with readings, projects, and assignments.

In terms of online courses, the two best are:

Stanford's teaches it top-down, starting at the application layer, moving to the physical layer. Wetherall teaches it bottom-up, starting at the physical layer and moving upwards. I have personally been working through Wetherall as I find his teaching style more in line with how I like to learn.

Readings

Standard advice says that I should be using Computer Networking: A Top-down Approach. [PDF warning]

Readings:

  • Unit 1: Sections 1.1-1.3; 1.5; 2.1
  • Unit 2: Sections 3.1-3.5
  • Unit 3: pp. 22-31; 640-648
  • Unit 4: pp. 259-265; 269-279
  • Unit 5: pp. 83-114
  • Unit 6: pp. 305-379
  • Unit 7: pp. 433-443
  • Unit 8: pp. 671-693

Assignments & Projects

I will be using the assignments from the following:

I will also be implementing small, commonly used networking programs (ping, traceroute, etc.) as well as any other parts of a network that seem interesting (such as spanning tree protocol).