Things that make Microsoft Networking hard in hardware:

Thomas Ptacek | January 3rd, 2005 | Filed Under: Uncategorized

Simplifying assumptions that hardware implementations use to accelerate processing:

  1. Connections are clearly divided into a “control plane”, where interesting stuff happens, and a “data plane”, where bulk data is quickly shuttled around with minimal inspection.

    • Any given Microsoft packet could flip a connection from “data” to “control”.
  2. Services are mostly “fixed-function” and can be implemented in small amounts of hand-tuned code.

    • An IXP NPU can handle 4k instructions per core.
    • There are more than 10 different ways to change a password in the Microsoft protocols.
  3. State (the information that needs to be stored about every instance of the service on the network) is minimal and predictable.

    • Acceleration is largely a function of how much the processor can be kept from waiting on memory. As a frame of reference: to compare NPU-land, where everything is happening concurrently and the streets are paved with coconuts, to Unix: whenever you think of a memory access, think of a file access.

No comments yet. Be the first.

Leave a reply