Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/aos/computer-networking-study
Learning computer networking through projects and readings
https://github.com/aos/computer-networking-study
Last synced: 14 days ago
JSON representation
Learning computer networking through projects and readings
- Host: GitHub
- URL: https://github.com/aos/computer-networking-study
- Owner: aos
- Created: 2019-07-31T02:54:21.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-07-06T15:35:09.000Z (4 months ago)
- Last Synced: 2024-10-21T14:35:47.778Z (23 days ago)
- Language: Go
- Size: 5.29 MB
- Stars: 96
- Watchers: 8
- Forks: 8
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## 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.1. [Beej's Guide to Networking Programming](http://beej.us/guide/bgnet/)
2. Online courses (pick one)
3. Supplement that with readings, projects, and assignments.In terms of online courses, the two best are:
- Stanford's [Introduction to Computer Networking](https://www.youtube.com/playlist?list=PLoCMsyE1cvdWKsLVyf6cPwCLDIZnOj0NS)
- [Computer Networks with David Wetherall](https://youtube.com/playlist?list=PLVEo1P9gAninM7KwP1KKolfMQdNs6P6Am)Stanford 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.> Update (2024-06-08): Unfortunately, both courses have been taken down. I've
> replaced the links with archived Youtube playlists of the lectures.### Readings
Standard advice says that I should be using [Computer Networking: A Top-down
Approach](https://www.ucg.ac.me/skladiste/blog_44233/objava_64433/fajlovi/Computer%20Networking%20_%20A%20Top%20Down%20Approach,%207th,%20converted.pdf). [**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:
- [Princeton's Computer Networks repository](https://github.com/PrincetonUniversity/COS461-Public)
- [Stanford CS144 - Fall 2010](https://www.scs.stanford.edu/10au-cs144/)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).### Misc
I have been recommended the book [High Performance Browser Networking](https://hpbn.co/)
multiple times but I have not had time to go through it.