Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I took a networking course in college and I didn't learn much, if anything. We used textbooks like Kurose and Ross that went deep into details like the header format of each packet of each layer. Ultimately, these were useless details that had no place in a textbook. It made me hate the subject.

I eventually learned the subject properly through High Performance Browser Networking. This is the one book I would recommend to any software developer. Available for free here - https://hpbn.co



I'd largely echo your sentiment, but luckily our professor had a hands-on attitude. This involved actually coding things that used those concepts. We had to implement a non-recursive DNS resolver and a FTP server. Reading the RFCs and chewing out something that worked (mostly) was real fun.


Same here, we did examine headers and learn about the layers of networking, but we were also given the link to https://www.ietf.org/rfc/rfc1035.txt and told to implement a DNS resolver in C. We also did a peer-to-peer client. You learn a lot more by implementing it.


I did the exact same projects in my 3rd-year networking class


That book is one of the most useful engineering books I have ever read. Top quality theory with practical application.


Interesting, I think that textbook is one of the best I’ve read on networking. It gave me the foundational knowledge on approaching networks.


Can anyone recommend an excellent resource on how IPTABLES work? One with diagrams and real world examples?


I cannot recommend this specific diagram highly enough: https://upload.wikimedia.org/wikipedia/commons/3/37/Netfilte...

I've easily had a dozen times where I was able to resolve a complex problem or figure out how to do the thing I wanted to do through examination of this flowchart.


Yup... agreed.

I just wish someone would come up with an associated easy-to-digest guide-for-dummies for a few different real world scenarios.


This is what I used to learn about IPTABLES: http://homes.di.unimi.it/sisop/qemu/iptables-tutorial.pdf


That's sad to hear. I agree that colleges can be too textbook-centric. I'd read a chapter and get nowhere. Did your college have a lab or projects? Mine had us built a rudimentary FTP server, telnet server, a toy instant messenger client, etc. I don't think I could have learned networking simply on the textbook alone. Also playing around network sniffers, network explorers, etc can help.


Same with my college networking class. The professor talked a lot but we didn't do much besides look at HTTP requests in Wireshark.

The most practical thing I had to do with networking cane up in a job interview where I paired with someone to work on some low later stuff.


They didn't have you setting up networks with real hardware in a LAB ?

Not sure that starting with http requests is a good idea you need to start at layer 1 and work up.


This is pretty frequently debated. You can find textbooks that start at L1 and work up the stack, and others that start at L7 and go down.


Starting at Layer 7 is a fundamental mistake, because it perpetuates the execrable and obsolete OSI 7-layer model. Since IP protocols DO NOT map cleanly to the OSI model, trying to shoehorn IP into it causes more misunderstanding than anything else I've seen in networking. Seriously - IGNORE the 7-layer model if you want to understand real-world protocols and their design, especially anything IP-flavored.

(BTW, David Clark, one of the inventors of IP, told me over beers at a long ago Interop that the only reason there are 7 layers is because ISO arbitrarily set up 7 subcommittees to study the problem, and when they couldn't agree on where to draw the lines between the layers when they reconvened, they just made the diplomatic compromise of sticking with the subcommittee boundaries. That's why the OSI model so poorly reflects real world protocol implementations. AFAIK, other than the OSI protocols themselves (MAP/TOP, etc.), which unwisely used the model as an implementation guide, the only protocol to cleanly map to the OSI model is X.25. Does anyone actually use any OSI protocols anymore?)


> Does anyone actually use any OSI protocols anymore?

OK, here's my conspiracy theory:

At a certain point, the OSI people knew they were losing. However, they were the people in charge of the big institutions, so they made a push to ensure that history books would be re-written such that, well, of course we all use the OSI Model, of course the Internet people implemented OSI, there was never a debate, don't be silly! Eastasia and Oceania have always been at peace, and that's why, here in Airstrip One, you need seven layers to describe how anything which moves over a network works!

... and the fact the OSI Model was attached to actual protocols is silently forgotten, as is the fact the ARPANet/Internet people were mildly opposed to "layers" as a conceptual model and never took the OSI Seven-Layer Model as a design document!


While we learnt from Layer 1, all the setup was in software so we didn't get any hardware.

I think the idea is that we could examine Wireshark frames for the relevant layers.


It seems every intro to networking goes into the headers of each layer's most common protocol.


That's a good thing imho, at least if accompanied by something that gives you the more practical perspective on layers 4 and above as well (which is probably where many curricula fail). Of course it's more interesting to do fun stuff with fancy JSON APIs or create a funky WiFi mesh, it's even likely to be more relevant to most people's future job since not that many people focus on networking. But it's a foundation that can be interesting and help many optimizations down the road, it simply is not academias primary and exclusive focus to prepare students for some job. Just like many people take other stuff from CS programs that you simply don't learn in a 3 month Python course, undertanding of networking protocols is something that _may_ help and give you an advantage for future problem solving. It might even be thought inspiring enough for you to focus on in the first place.


Great stuff. Thanks for sharing that link.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: