12 Oct 2015

NOX: Towards an Operating System for Networks

operating system
early days of computing … machine languages … no common abstraction for the underlying physical resources … modern OS provides controlled access to high-level abstraction for resources (e.g., memory, storage, communication) and information (e.g., files, directories)
an “operating system” for networks
uniform and centralized programmatic interface to the entire network … provides the ability to observe and control a network. … a network operating system would not manage the network itself; it would merely provide a programmatic interface.
events
enterprise networks are not static: flows arrive and depart, users come and go, and links go up and down. … nox applications use a set of handlers that are registered to execute in order of their priority (specified during handler registration). a handler’s return value indicates to NOX whether to stop execution of this event, or to continue by passing an event to the next registered handler.
nox high-level services include
a set of “system libraries” to provide efficient implementations of functions common to many network applications. These include a routing module, fast packets classification, standard network services (such as DHCP and DNS) and a policy-based network filtering module.
related work and open issues
NOX complementary to Maestro … in general, operating systems can be seen as revolving around two basis purposes:
  1. providing applications with a high-level of abstraction
  2. controlling the interaction between applications
NOX focuses on the first, while Maestro focuses on the second, “orchestrating” the control decision made by various management applications.