
In designing a network device, you make dozens of decisions that affect the speed with which it will perform-sometimes for better, but sometimes for worse. Network Algorithmics provides a complete, coherent methodology for maximizing speed while meeting your other design goals. Author George Varghese begins by laying out the implementation bottlenecks that are most often encountered at four disparate levels of implementation: protocol, OS, hardware, and architecture. He then derives 15 solid principles-ranging from the commonly recognized to the groundbreaking-that are key to breaking these bottlenecks. The rest of the book is devoted to a systematic application of these principles to bottlenecks found specifically in endnodes, interconnect devices, and specialty functions such as security and measurement that can be located anywhere along the network. This immensely practical, clearly presented information will benefit anyone involved with network implementation, as well as students who have made this work their goal. FOR INSTRUCTORS: To obtain access to the solutions manual for this title simply register on our textbook website (textbooks.elsevier.com)and request access to the Computer Science subject area. Once approved (usually within one business day) you will be able to access all of the instructor-only materials through the "Instructor Manual" link on this book's academic web page at textbooks.elsevier.com.
Edit:
A couple of other suggestions.
Managing Gigabytes: Compressing and Indexing Documents and Images[2]
Mining of Massive Datasets[3]
Algorithm Design Manual[4]
Network Algorithmics[5]
Neural Network Design[6]
I think all of these fall into the category of "Won't be applicable to everyone, but can be good for those who need this kind of stuff."
[1]: https://github.com/clever-algorithms/CleverAlgorithms
[2]: https://people.eng.unimelb.edu.au/ammoffat/mg/
[3]: http://www.mmds.org/
[4]: https://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena...
[5]: https://www.amazon.com/Network-Algorithmics-Interdisciplinar...
It presents various CS topics from the perspective of backend optimization, so it's a good book for approaching theoretical CS from a background you already probably understand.
But, ultimately, the best asset for somebody with a CS background is not so much having immediate knowledge, but knowing where to acquire knowledge as necessary. If you have a general idea that for a specific scenario, you can acquire X knowledge in Y resource as you go along, then you're already doing quite well.
* Network Algorithmics,: An Interdisciplinary Approach to Designing Fast Networked Devices - https://www.amazon.com/Network-Algorithmics-Interdisciplinar...
* See MIPS Run - https://www.amazon.com/Morgan-Kaufmann-Computer-Architecture...
* UNIX Systems for Modern Architectures: Symmetric Multiprocessing and Caching for Kernel Programmers - https://www.amazon.com/UNIX-Systems-Modern-Architectures-Mul...
* Advanced UNIX Programming - https://www.amazon.com/Advanced-UNIX-Programming-Marc-Rochki...
The important design distinction about the layers is what element has access to what data. (e.g. routers need to see IP addresses to do their job, port numbers help kernels segment permission models, etc..) The rest of it is just about logical models, real-world workarounds, and luck...
HTTP/3 will be able to get high bandwidth, buttery responsive restarts to connections far too long idle to keep "open" because it integrates security, application, and transport. That's thoughtful design, not a workaround.
I'm going to paraphrase (and maybe bungle, because I don't have it at hand) from my favorite networking book of all time - the underappreciated _Network Algorithmics_ by George Varghese. He describes layers as a lovely way to model and think about a protocol or design, but often a terrible way to build one. I've spent a lot of time thinking about that, and I think QUIC gets it right - the layers are clear in how they inter-relate but they do so without being independent.
Lampson's classic on hints for computer system design:
https://www.microsoft.com/en-us/research/wp-content/uploads/...
Here is a previous HN post on the subject: https://news.ycombinator.com/item?id=8000811
The Clean Code author has a Clean Architecture book but I don't think it is out yet.