Skip to content
HomeVideosBooks
AllTopicsTrends
BlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    Cover of Network Algorithmics,

    Network Algorithmics,

    George Varghese · 2004

    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.

    Computer ScienceSystems & OSProgramming
    Open LibraryAmazon
    Stats for nerds
    8recommend
    11mentions
    9people
    2008–2021years
    91% recommend9% neutral

    Mentions per year

    20082010201220142016201820202021

    What Hacker News says

    1. mindcrimeNov 2021
      Maybe Clever Algorithms: Nature-Inspired Programming Recipes[1]. These techniques might not be useful to everybody, all the time, but they can be very handy in places.

      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...

      [6]: https://hagan.okstate.edu/NNDesign.pdf

      thread
    2. nenolodJan 2021
      George Varghese's Network Algorithmics is a good book for backend-oriented people to learn various fundamental CS algorithms.

      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.

      thread
    3. rramadassSep 2019
      You might find the following useful.

      * 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...

      thread
    4. patrickmcmanusMar 2019
      The way I look at it a lot of what we logically think of as the network layer often exists in userspace anyhow. That's the point of DPDK/snabb/netmap and other kinds of driver bypass.

      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.

      thread
    5. cottonseedJul 2017
      Tough question. I'm not aware of any books that are substitutes for reading and writing large projects, some books I've found useful: TCP/IP Illustrated: The Implementation (goes through the implementation of the 4.4BSD-Lite network stack), Lion's Commentary on UNIX (or xv6 book), Network Algorithmics (amazing book), Linux Kernel Development by Love, Large Scale C++ Software Design, Design Patterns. A lot of people like the Architecture of Open Source Applications books. I also think learning more computer architecture as the beginning of computer systems engineering is good for everyone, but that's just me.

      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.

      thread
    6. signa11Mar 2017
      for networking, my _personal_ favorite is 'network algorithmics' by george-varghese. basically, i find it to combine topics from a variety of cs disciplines including (but not limited to) computer architecture, algorithms, data-structures and to some extent, compilers as well.
      thread

    Related

    Numerical AlgorithmsJustin Solomon
    2016–2025

    Numerical Algorithms

    Justin Solomon
    1 recommend · 2
    Cover of An engineering approach to computer networking
    2018–2024

    An engineering approach to computer networking

    Srinivsan Keshav
    2 recommend · 12
    Cover of Hands-On Network Programming with C
    2022–2024

    Hands-On Network Programming with C

    Lewis Van Winkle
    2 recommend · 2
    Cover of Mathematical Foundations of Computer Networking
    2012–2023

    Mathematical Foundations of Computer Networking

    Keshav
    3 recommend · 6
    Cover of The illustrated network
    2016–2024

    The illustrated network

    Walter Goralski
    3 recommend · 6
    Cover of Algorithmics
    2008–2024

    Algorithmics

    David Harel
    11 recommend · 22
    Cover of How to Think About Algorithms
    2012–2025

    How to Think About Algorithms

    Jeff Edmonds
    4 recommend · 6
    Cover of Computation structures
    2010–2026

    Computation structures

    Stephen A. Ward
    8 recommend · 15