  The 5-layer TCP and 7-layer OSI models are taught as high-level frameworks in
which the various protocols that are used in computer networks operate.
  These models provide valid insights in the organization of network
functionalities and protocols; however, the difficulties to fit some crucial
technologies within them hints that they don't provide a complete model for the
organization of -- and relationships between -- different mechanisms in a
computer network. Recently, a recursive model for computer networks was
proposed, which organizes networks in layers that conceptually provide the same
mechanisms through a common interface. Instead of defined by function, these
layers are distinguished by scope.
  We report our research on a model for computer networks. Following a rigorous
regime alternating design with the evaluation of its implications in an
implementation, we converged on a recursive architecture, named Ouroboros. One
of our main main objectives was to disentangle the fundamental mechanisms that
are found in computer networks as much as possible. Its distinguishing feature
is the separation of unicast and broadcast as different mechanisms, giving rise
to two different types of layers. These unicast and broadcast layers can easily
be spotted in today's networks.
  This article presents the concepts underpinning Ouroboros, details its
organization and interfaces, and introduces the free software prototype. We
hope the insights it provides can guide future network design and
implementation.
