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:
- providing applications with a high-level of
abstraction
- 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.