
Ask HN: Best books or online courses to learn networking? - clbrook
Any tips on the best beginner books for learning computer networking? I&#x27;d really like books&#x2F;courses that explain &#x27;why&#x27; something is done along with (or more than) the &#x27;how&#x27; something is done.<p>Similar request for network security...if anyone has good tips to share. Thanks!
======
otras
Stanford has a free online class _Introduction to Computer Networking_ through
their Lagunita site that you can take for free. I've worked through part of it
and very much enjoyed it.

[https://lagunita.stanford.edu/courses/Engineering/Networking...](https://lagunita.stanford.edu/courses/Engineering/Networking-
SP/SelfPaced/about)

~~~
gerdesj
Would you mind expanding a bit. It mentions 5-10 hrs per week but how many
weeks - is 52ish (with time off for hols) too obvious? "self paced" doesn't
really help 8)

Note to OP - there are two basic texts for this course: Peterson and Davie or
Kurose and Ross. The first link is broken but you should be able to find them
with your search engine of choice.

~~~
otras
Sure! Here's the summary from the syllabus:

    
    
      This course is self-paced. You may complete the material at any speed or order that you choose. 
      Course material is broken up into 8 units, each covering a distinct topic.
      
      Week 1: The Internet and IP
      Week 2: Transport
      Week 3: Packet Switching
      Week 4: Congestion Control
      Week 5: Applications and NATs
      Week 6: Routing
      Week 7: Lower Layers
      Week 8: Security

------
collinf
Here is a free one I really enjoyed! Goes through the history of networks and
a lot of the performance tradeoffs that we must make as engineers.

[https://hpbn.co/](https://hpbn.co/)

~~~
gerdesj
Good stuff in there (browsing ToC). It does have a focus though (hint: there
is more to the internet than www). For example, I can't find any obvious
discussion about MTU.

I suggest saving this one for a little later in your journey towards
networking enlightenment.

------
xenihn
Beej's Guide to Network Programming

[https://beej.us/guide/bgnet/](https://beej.us/guide/bgnet/)

~~~
hackandtrip
I skimmed through it and I like the approach. I had, as an undergrad, a course
on the theory of networking, summing up the OSI Layer, but practical
experimentations could really help understanding more.

------
Wheaties466
I was considering making a course or youtube video series on this. Are you
looking to learn Networking as in Route/Switch/Firewall? Or more of a Network
Programming? Or more of a Network Security(by that I mean pwn and pivot style,
SOCKS)?

~~~
clbrook
Definitely interested in security and also the why behind when/where networks
are setup. How is good too, but the why is bypassed in a lot of materials I've
read of late.

~~~
Wheaties466
Good information, thanks for the insight as someone looking to learn.

------
yagibear
Radia Perlman's books ("Interconnections" about switches/routers and "Network
Security") are great at explaining why with a sense of humour.

------
estevaovix
TCP/IP Illustrated: [https://www.amazon.com/TCP-Illustrated-Protocols-Addison-
Wes...](https://www.amazon.com/TCP-Illustrated-Protocols-Addison-Wesley-
Professional/dp/0321336313/ref=mp_s_a_1_1?ie=UTF8&qid=1535006015&sr=8-1&pi=AC_SX236_SY340_QL65&keywords=tcpip+illustrated+volume+1&dpPl=1&dpID=51G-AM5VWwL&ref=plSrch)

------
skovorodkin
Not a book, but an overview of networking by Gary Bernhardt:

[https://www.destroyallsoftware.com/compendium/network-
protoc...](https://www.destroyallsoftware.com/compendium/network-
protocols?share_key=97d3ba4c24d21147)

[https://news.ycombinator.com/item?id=14468471](https://news.ycombinator.com/item?id=14468471)

~~~
vram22
Regarding this comment from that HN thread:

[https://news.ycombinator.com/item?id=14476906](https://news.ycombinator.com/item?id=14476906)

>This is great. Along similar lines, "Foundations of Network Programming" by
Brandon Rhodes (and originally John Goerzen) is fantastic

Anyone have an idea which of the two editions is better?

------
itamarst
The book "Silence on the Wire" is worth reading.

------
gerdesj
I know you've asked for books and courses but if you are serious then get
practical and self-medicate! You should be able to cobble together some
reasonably priced gear. It does not need to be expensive and the more the
better. Here are a few ideas:

Look out for old Cisco, HPE, Dell or Juniper switches - 10/100Mb ones work
fine for learning with. Ideally managed ones with a command line but webby
interface ("smart switches") will get you started. If buying new then a
Netgear GS108T is a good low price smart switch. There is a lot of
documentation for all of these available on the web.

Raspberry Pis are pretty cheap and are full Linux boxes with the full
firewall/router etc available. The current models have both wifi and wired
connections, so you can play with routing. They are powerful enough to run a
GUI and a browser which is pretty nifty for £30. If you are not familiar with
Linux then these are a good place to start - loads of resources available. Old
laptops tend to have both wifi and wired as well and come with a UPS and
screen built in, not to mention gobs of RAM and a hard disc! A lightweight
Linux distro can make a decent router or a test server or whatever.

Consider virtualisation. A decently powerful PC can run a whole lot of mini
virtual routers, switches, servers and clients. However, you will need to get
to grips with quite a few concepts here as well as networking. Perhaps save it
for phase 2.

On the internet routers front, investigate the likes of pfSense and open
router firmware like Tomato, DD-WRT etc (for my money, pfSense is the man
every time).

Get yourself signed up for several sub reddits eg r/networking r/sysadmin
r/HomeNetworking r/pfsense. Read them and lurk. The Gentoo and Arch Linux
forums are worth watching as are the pfsense ones.

On the security front, why not grab a copy of Kali Linux - I use it in the day
job quite a lot. It can look a bit bewildering at first but there is a lot in
there all in one place, already installed. Don't be put off by the silly names
for some of the software. For a quick dive in and instant results, on an OS
you may be more familiar with, get hold of nmap/zenmap and Wireshark and learn
how to use them. Lots of docs for them on the web. Make sure that you search
for them carefully and only download from the correct site. As you can imagine
there are quite a few _ahem_ unauthorised versions around. Both nmap and
wireshark have .org domains and are open source and hence free.

Hopefully someone will get you on track with a good book or two and hopefully
you'll do the decent thing and fill your home with networking hardware.

One last note: networking doesn't happen alone or in isolation - a fact
sometimes lost in many orgs with teams for separate functions - "nets",
"servers", "apps" and all that stuff. You can't know everything but don't stop
at artificial boundaries.

------
ConSeannery
The CCNA & CCNP curriculum will give you a solid base in networking as it
relates to actual network engineering. Skip over the cisco specific stuff if
you feel it's not relevant.

