Hacker News new | ask | show | jobs
by thyrox 907 days ago
How does one learn about this stuff? I learned about basic networking in college (the TCP layers) etc but people doing such stuff sounds like Greek to me.

If I want to learn more about what the author is doing, is there a resource like a udemy course or YouTube channel you guys can recommend?

14 comments

Back before cellular data coverage as ubiquitous and cheap, getting on an using shoddy wifi was an essential skill for anyone with a laptop. The ability to lock onto a stable wifi router, piggyback on another network, or syphon some bandwidth from a network you shouldn't ... those with such abilities managed to book tickets or hotel rooms within seconds of a flight being cancelled. Or, if you were really evil, you kicked everyone in the terminal off the router, hogging all the bandwidth for yourself. At school I had a script to randomize my laptops MAC ever few minutes then reconnect to the school's network. Mine was the only laptop that never got throttled by the wifi police for using too much data in a given session.

I used to have a little wifi antenna on my car. Some called it "wardriving" but I called it being able to check my email while traveling.

Back in the day you needed to know this stuff to get things working. It was not that uncommon for routers not to have DHCP so you had to input the IPs by hand. I think this may have been even the default and DHCP had to be explicitly enabled (e.g. in Linux installing and configuring dhclient).

Also it wasn't that uncommon to expose a computer to internet through the router, so you had to make sure that computer didn't change its IP.

I think having to set these up yourself is the best way of learning them.

I remember ye ol’ port forwarding to get Xbox live to work
The vagueries of DHCP can be learned best with a home lab, IMO

Back in the day, setting up random hardware or VMs on an isolated subnet taught you everything you needed to know about low level network protocols like DHCP, STP, BOOTP, ARP, RARP, and how to sniff it all with wire shark when you weren’t getting a lease

Containers have largely hidden this plumbing from us at a test/dev layer

I'd suggest a book. I was pretty happy with "Computer Networking: A Top-down Approach" by Jim Kurose. I find it more appealing that it starts with the upper layers (http), because I was more familiar with them.
From the authors’ website:

“You can't buy a hard copy of the 8th edition, but instead can rent (and then choose/pay to keep the hardcopy if you want a hard copy book). You can rent a copy or subscribe to Pearson+ from our publisher, or rent a hard copy or purchase a Kindle version from Amazon, or rent a hard copy from VitalSource.”

That’s just… odd!

http://gaia.cs.umass.edu/kurose_ross/index.php

It's probably intended to elide transfer of rights of first sale by tracking it as a rental with no intent to term in which to return.

It's bullshit.

Nice to see the name Jim Kurose here. Many years ago, I learned networking and C programming in his computer networks course at UMass. Such a great teacher and a real breakthrough class for me in understanding not just networks, but low level systems programming, computer architecture, and other things tangentially related to networks, I'm not surprised to hear his book is good.
Don't know about video courses, but Internet standards like DHCP are open and available on IETF.org. There are explanations on Wikipedia too. Also, if you're into Linux the HOWTO section on tldp.org can also be a big help for more practical stuff.
Get yourself a router that supports OpenWRT, install that on it and figure out what every configuration option does. Bonus points: setup WPA Enterprise on it and a DNS resolver.
Running an old PC or at least a VM that does OpnSense is even more versatile.
I prefer dd-wrt as I can’t be bothered with the complexity of open-wrt. I’m way too lazy.

Admittedly, it run on much fewer platforms - meaning Raspberry Pi for me.

Most computer networks 101 class teach how their state machine is designed only.

If you want to know "how to use them in real world", some universities has courses with "System Administration" would be more suitable. or learning the certificate program (CCNP, CCIE, JNCIP and others) materials with their lab.

If you're ok working through a textbook, I found https://intronetworks.cs.luc.edu/current1/html/ to be a thorough course on all things networking.
What do they teach you at university nowadays??? When I was in university studying computer engineering (almost 20y ago) we were taught networking a very thoroughly! Not only every technology involved but even the small details of how everything worked (from Ethernet cable based network using csma/cd to WiFi). We even studied in details ALOHAnet!
Back in the day you would just follow The Linux Documentation Project's HOWTOs and set up each kind of software on a little computer on your home network and play around with things. Today there's nothing like that unfortunately. HOWTOs were abandoned for individual blog posts written for one specific use case at a time, and I know of no index of such blog posts.
I learned a lot at my student job in the university IT department troubleshooting why I could boot from my Xserves NetBoot server in one room but not another.

The rest I learned in the last year by switching to pfSense/Opnsense for my router/firewall.

I would take courses oriented towards getting your CCNA (Cisco Certified Network Administrator). It covers the basics while also teaching you a bit about navigating through a Cisco switch.
Start homelabbing. Set up your own network.
Read the RFCs.