4 ms·
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 f
by nindalf 8y ago
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 https://hpbn.co
- geezerjay 8y agoGreat stuff. Thanks for sharing that link.
- robpalmer 8y agoThat book is one of the most useful engineering books I have ever read. Top quality theory with practical application.
- EnFinlay 8y agoIt seems every intro to networking goes into the headers of each layer's most common protocol.
- tastroder 8y agoThat'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.
- mrmuagi 8y agoI'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.
- arawde 8y agoI did the exact same projects in my 3rd-year networking class
- audiolion 8y agoSame 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 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.
- canada_dry 8y agoCan anyone recommend an excellent resource on how IPTABLES work? One with diagrams and real world examples?
- arthurcolle 8y agoThis is what I used to learn about IPTABLES: http://homes.di.unimi.it/sisop/qemu/iptables-tutorial.pdf http://homes.di.unimi.it/sisop/qemu/iptables-tutorial.pdf
- jonah-archive 8y agoI cannot recommend this specific diagram highly enough: https://upload.wikimedia.org/wikipedia/commons/3/37/Netfilter-packet-flow.svg 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.
- canada_dry 8y agoYup... agreed. I just wish someone would come up with an associated easy-to-digest guide-for-dummies for a few different real world scenarios.
- fgandiya 8y agoSame 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.
- walshemj 8y agoThey 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.
- sciurus 8y agoThis 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.
- dublin 8y agoStarting 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?)
- msla 8y ago
- porpoisely 8y agoThat'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.
- kevintb 8y agoInteresting, I think that textbook is one of the best I’ve read on networking. It gave me the foundational knowledge on approaching networks.