Architectural Decomposition

Architectural Decomposition

The architecture of a fully-fledged basic DNS server can be divided into parts:

    1. to start up the server, read the zone file and check it for well-formedness

    2. repeat forever

  1. accept UDP packets on a known port

  2. parse the binary input (including decompression)

  3. decide whether the server itself is authoritative for the request

  4. if so, produce the answer from the local data storage

  5. assemble the binary output (including compression)

  6. send a response over UDP

Note that, as emphasized later, not all components need be formally verified.  In particular, it would be surprising if any team verified I/O on a socket.

Leave a Comment