Get the top HN stories in your inbox every day.
teleforce
For me Computer Networking: A Top Down Approach (CNTDA) by Kurose is still the best textbook out there to learn modern networking:
https://gaia.cs.umass.edu/kurose_ross/index.php
Starting with the 6th edition, it has separated control and forwarding planes for the network layer to reflect the increasing popularity of software-defined networking (SDN) i.e. evolution of hardware centric to software centric networking. The fact that even before 6th edition when the chapter on networking is still monolithic (combined chapter on control and forwarding), it has already mentioned about the separation concerns between the control and forwarding planes while other popular textbooks still not highlighting this important matter. In addition, unlike many textbooks you can download all the supporting materials slides, exercises, animation, etc, of the from the authors' public website and Prof. Kurose video lectures are also available in Youtube.
My main wish lists for the next edition (9th) hopefully include Smart-NIC for modern approach to in-network computation and also the newly standardized segment routing for network layer QoS.
If there's The Nobel Prize in Literature for textbook authors, the authors of this book should be more than deserving.
zethsg
I agree completely, CNTDA is a great book and Jim Kurose, the author does a superb job covering some of the chapter contents in his youtube series (Ch1 to 6.x) from then on, another channel continues each chapter video
Lectures by Jim Kurose: https://www.youtube.com/watch?v=74sEFYBBRAY&list=PL1ya5dD_M8...
Lectures by Epic Networks Lab: https://www.youtube.com/watch?v=BBzqX08GPo8&list=PLo80JwUm6h...
arwineap
The licensing of this book is not something I've ever seen before...
I'm unable to buy it ?
the_only_law
$699 for a paperback copy. God I love textbooks.
lannisterstark
Libgen exists purely for this reason. $50? Sure. $100? Eh sure why not?
$700? lol.
arwineap
Wow, I couldn't even find the price, I guess I'm probably better off for it :)
NukedOne
Just skimmed through the Table of Contents. There doesn't seem to be even a word on the physical layer.
ericpauley
Sounds like OP (as with many reading Top-Down) don’t really care about physical layer.
teleforce
Such a hasty generalization. It's not that we don't care about PHY, but expecting in depth PHY treatment in modern networking book is like expecting semiconductor physics in the The Art of Electronics book [1]. Personally PHY is my passion and trying to propose a new reliable PHY waveform to 5G and upcoming 6G standards.
Modern PHY is like bit twiddling in programming, 99% programmer don't do it and don't care unless you are doing HPC or device driver. In networking those who're doing PHY belong to communication engineering field. For modern networking the relevant PHY mostly dealing with digital I/Q signal for wired/wireless and there are many excellent books on the subject such as this [2].
[1]The Art of Electronics (2015):
https://news.ycombinator.com/item?id=38748370
[2] Digital Signal Processing in Modern Communication Systems
https://www.amazon.com/Digital-Signal-Processing-Communicati...
diego_sandoval
I read the 7th edition and I agree with you. It's a great book.
My wish would be for the section/mention of NAT to be expanded on and discuss NAT traversal mechanisms.
undefined
genmud
I'm still a fan of TCP/IP illustrated (book 1) [1] for understanding the fundamentals. The one from No Starch Press [2] is also a great book.
Personally, I think if you understand the fundamentals, you will quickly realize things like software defined networks and CDN technologies are just abstractions on top of other stuff.
[1] - https://www.amazon.com/TCP-Illustrated-Protocols-Addison-Wes...
justtinker
Warning about old books. (The NoStarch one is from 2005)
Given that IPv4 Evolved a lot over the last 20 years to manage the complexity of address assignment and shortages, everyone should be aware that IPV6 has changed too.
The chapter on IPv6 just barely hint and the development of IPv6 in real world cases.
Don't take an almost 20 year old book for gospel for IPv4 or IPv6.
Policy and implementation practice has changed enormously. Look at documentation from the last few years and from good sources. EG Apnic is the Regional Internet Registry for Asia. https://blog.apnic.net/2023/04/04/ipv6-architecture-and-subn...
Also a good source of info and opinions is the Packet Pusher set of podcasts. https://packetpushers.net/
I find that they tend to have a very real world explanation of topics covered and they avoid the "I've doing networking for 20 years. Don't tell I have to change" attitude.
jpleger
What are you talking about? TCP/IP hasn't changed in the last 20 years... like, at all.
There might be best practices which have changed around NAT, software defined networking and load balancing, but it's all on top of existing protocols.
If you are talking about subnetting practices, it has always been an operational thing... that's not what these books are talking about.
jjice
Looking at the No Starch Press book: 1616 pages and 88 chapters. Something tells me that I don't know TCP/IP as well as I thought I did...
runjake
It’s meant as a reference book.
You need to know some factoid, you look it up, you actually find it because it’s 1600 pages long.
These days, most people would Google it. This book was written back in 2005 and some of us still prefer paper for reference.
Eisenstein
FYI about 'factoid':
> The term was coined in 1973 by American writer Norman Mailer to mean a piece of information that becomes accepted as a fact even though it is not actually true, or an invented fact believed to be true because it appears in print.
razakel
That book's a reference encyclopedia, not an intro/primer.
rsync
"I'm still a fan of TCP/IP illustrated (book 1) [1] for understanding the fundamentals."
Agreed.
I find it difficult to gratuitously study a broad topic and instead prefer to learn by building and doing.
However, that book was one of the most readable, well paced and well presented books and it really did give me a good broad understanding that I rely on even now, 25 years later.
Even if you think a book just about TCP/IP is pigeonholing you and you'd like a broader picture of "computer networking" I would still start with this - the design decisions and solutions described can be applied very broadly.
A good example of this is the discussion of exponential backoff algorithms ... that's useful everywhere.
__d
TCP Illustrated volume 1 and Unix Network Programming volume 1, 3rd edition.
And then just read RFC for more modern stuff like QUIC, WebSockets, WebRTC, etc.
__d
I should add:
Don't be afraid to dive into RFCs. They're the primary source, and once you've got the basics (from eg. TCP Illustrated) understood, they're easy to read and understand.
In many cases, I find them to be better than the majority of books/articles/videos.
lelanthran
I'll add onto what you said: if you're afraid of RFCs, look for a Wikipedia page of that topic. They're generally much more readable and have diagrams.
For example, trying to learn the TCP fields from the RFCs alone is hard because of how many there are. Starting with the Wikipedia page on TCP and then following the linked RFCs is easier.
sgt
You can't NOT have these books on your bookshelf, if you are serious about diving deeply into TCP/IP.
hazz99
Once you're past the fundamentals, if find yourself interested in high-performance networking, I recommend looking into userspace networking and NIC device drivers. The Intel 82599ES has a freely available (and readable!) data sheet, DPDK has a great book, fd.io has published absolutely insane benchmarks, ixy [1] has a wonderful paper and repo. It's a great way to go beyond the basics of networking and CPU performance. It's even more approachable today with XDP – you don't need to write device-specific code.
cgh
And on the other end of the advanced spectrum, any recommendations for learning datacenter networking? Eg similar to the topics in Cisco’s datacenter certifications: https://learningnetwork.cisco.com/s/ccie-data-center-exam-to...
hazz99
Unfortunately I don’t have any recommendations to give, my experience starts and stops at application development. Though I would love to spend some time in a datacenter!
Potentially have a look at Infiniband and Clos/fat tree networks?
My more generic recommendation would be to explore semantic scholar for impactful/cited papers, look for some meta analyses, and just dig through multiple layers of references till you hit the fundamentals (typically things published in the 80s for a lot of CS topics).
beeburrt
I’ve been using http://gaia.cs.umass.edu/kurose_ross/online_lectures.htm which is a course by authors of Computer Networking: A Top-Down Approach
Cwizard
We used this book in my university class on networking. I can also recommend it.
mvcatsifma
Seconded; I also recommend this book.
dogman144
A good progression I think is these books in order and 2 labs:
- Kurose, Computer Networks a top down approach
- tcp/ip illustrated volume 1
- the no starch tcp/ip book
For labs,
- at your workplace or homelab, I’d click through the network configs in your cloud. This hits maybe on “modern networking,” although the theories in the books will match to what you see in cloud just maybe with cloud product names. Reading through terraform repos is also good
- GNS3 lab software to build networks you read about in those books.
Or tbh, just doing a net+ cert would get you in a good place for basic competency to augment a dev job.
Top of mind - there is a logic to it and it’s quite interesting technology. Learn to thing in terms of protocols and their rules and it’ll open up.
Shane325
High-Performance Browser Networking: https://hpbn.co/
adhamsalama
A very good book for web developers. I read it a couple of months ago. It's very useful and I highly recommend it, even if it doesn't go deep into the details like other books.
luisgvv
From time to time I find myself coming back to this one, it's short and concise. Of course if you want to go deeper this one doesn't cut the deal
austin-cheney
That is generally considered the gold standard for professional network education.
Yes, it’s networking according to Cisco and in some cases they do try to push some of their products as commercial solutions. However, the proprietary stuff is clearly identified by Cisco intentionally in the educational materials because the goal is education first even if you favor a competitor’s products. Cisco makes money on their educational materials and certifications so they can afford to separate their tiny bits of proprietary stuff from the education as necessary to build a strong professional labor force ready to consume their products years in the future.
ajoseps
for classic network programming that's relatively hands on and has a lot of examples, beej's guide to network programming is great (and free online):
thesurlydev
Julia Evans has some good zines as a starting point and does a great job of distilling complexity and making topics like this approachable to newcomers. [1]
I'd also recommend "Network Basics for Hackers" by OccupytheWeb [2]
mwn
I use Computer Networking: A Top Down Approach for my classes on computer networks and distributed systems and on a theoretical level its a good read. My students appreciate the visual presentations. Modern networking setups depend a lot on the area of scope. Do you want to understand IP networks, tier-1 internet backbone, mobile networks, private networks, data center architecture, distributed web applications, etc.
sciencesama
there are a lot of things that are at play here, networking has been a commoditised and defragmented place even now, there is a tug of war that is always happening between companies who want to commoditise like cisco and junipers who emphasise a lot on the hardware and less on software, there is no proper gui for cisco or juniper products till now. and there is linux networking with tun and tap. one good book is to look at automation of networking (Network Programmability and Automation: Skills for the Next-Generation Network Engineer) which does a good job on the history and is a latest book which goes over a wide variety of places where networking can change. if you delve into kubernetes and virtual networking it is a beast on its own !! so for modern networking just do a lab and do a packet capture and you are good to go ! learning basics gets you no where ! it is like reading how alphabets are formed but never gets you write a poem, use chatgpt when you have a doubt and move on to next topic. topics you need to look at are ipaddressing, bgp, vxlan, iptables thats it !
aos
When I was going through this, I found it helpful to re-implement stuff in code as I was learning. I compiled resources on it in this repo for my own benefit: https://github.com/aos/computer-networking-study
Get the top HN stories in your inbox every day.
I'm looking for a book to get up to speed on networking in 2024
Including classical topics from sockets, to the TCP/IP stack, to DNS, to AnyCast, and similar layers and technologys, but also modern networking setups that might include cloud providers, or other 2024-ish considerations