HACKER Q&A
📣 ksd482

As a software engineer, how do I best learn basic network engineering?


Is there a "System Design Primer" equivalent for network engineering for application developers?

In school I never took networking class and I never had to use any of the networking utilities/commands at job beyond a simple telnet to check of host/port is reachable.

I have looked into youtube videos --- but they are all too abstract and tend to go into enough depth only many videos later.

I have looked into coursera courses --- same deal as youtube videos.

So, to summarize the problem with all these tutorials seems to be too much time commitment -- unfortunately I don't have that much time.

Perhaps a good tutorial would be something that would be a hands-on tutorial based on several scenarios.

Any advice?

Thanks

PS: it's embarrassing to admit I have more than 10 years of experience and I still don't know the basics of network engineering.


  👤 rulambo Accepted Answer ✓
My advice would be to start with web applications and use for example Rust (because it is easier to get started on simple stuff) and build a TCP server (20-30 lines of code).

Then ask yourself what you are seeing and why. OSI model and such. Then try to find out what the kernel has to do to setup a socket and build something in C (just google Linux socket programming).

And after that, try researching how the packets you receive can be blocked by a firewall and why.

And go on and on. I am currently writing a book which touches the topic a bit and it helps to build stuff and see packages.

For example: Use Wireshark and try to find out how you can see the communication of the browser.

Google: - Linux Networking - What are sockets - Socket programming - Firewall blocks a domain how - How to bypass firewall for domain


👤 runjake
20+ year network engineer and programmer here.

Get a good CCNA study book (like Todd Lammle’s) and browse the first few chapters until you are satisfied. Stop when you don’t care about the chapter topics anymore.

Lammle’s book is highly-regarded and an easy read. It begins at layer 1 (electrical signals) and continues up the OSI stack.

You could even buy an old, used edition. The information you’re interested in hasn’t changed.


👤 hn_asker
The obligatory Beej's suggestion: https://beej.us/guide/bgnet/html/.

👤 viraptor
> all these tutorials seems to be too much time commitment -- unfortunately I don't have that much time.

There's quite a bit of content there. I'm not sure what your threshold for much time is, but don't expect to dive into more than basics in <10h.

An alternative for practical application would be just to look at what you actually use and dive deep. For example two concepts: routing tables and TCP/IP header - go to the articles on wikipedia, and go deeper into things you don't know about.


👤 austincheney
The industry standard for network credentials are the Cisco certifications, namely: CCNA, CCNP, and CCIE. I recommend getting a text book and starting with CCNA. If that’s a bit rough you can study for Network+, the baby cert from Comptia.

Get the Cisco “Packet Tracer” application to help you study. It is a network simulation application that allows you drop fake hardware into a fake network that you can configure and pass packets across.

I know software developers don’t do certifications, but networking does (actually absolutely everybody else does). Those certifications are the equivalent of a law license or medical license for that industry.

> So, to summarize the problem with all these tutorials seems to be too much time commitment -- unfortunately I don't have that much time.

Make time. Find it. Skills and knowledge take study and practice which take time. If you cannot be bothered to spend time learning this I recommend you stop lying to yourself about it and go do something else.


👤 joana035
After reading the theory don't forget to apply it a couple of times, tcpdump, tc, iproute2, iptraf, virtual machines and GNS3 are some tools that help augment your learning process.

👤 brudgers
Tanenbaum’s Computer Networks is a pretty standard textbook on the subject. It pours a solid foundation in an organized and systematic form.

If nothing else you won’t be flailing around the internet.


👤 easytiger
It's not clear to me what you want to learn, do you want to learn sockets & client/server development?