Management of Active and Programmable Networks

Information comes in two general flavors: non-executable (a string of bits with predefined meaning and already in their final form) and executable (bits of program code, intended to be executed, and whose result after execution is of primary interest). Our understanding of non-executable information is relatively deep and well known. Characteristics and behavior of executable information, on the contrary, is far from known: no one can say in general when the smallest program that performs a task has been generated—no one can predict the impact of changes to the bits of program code—no one can determine in general when or if a program will end; most practitioners steer clear of applying it within the network and even fewer researchers explore algorithmic information theory with respect to managing a network. Active networks [1‐3] provide a framework enabling the previously discussed flavors of information to co-exist within, and modify the behavior of, communication networks. Executable code and non-executable data reside within network packets such that injected code can modify behavior of lowlevel network layers. Programmable networks allow customization of dataplane and control-plane services (e.g., using network processor methods in high-speed routers or software radio methods in wireless networks). These networks raise new management issues regarding the relation and tradeoffs among communication and computation, configuration, fault, security, performance, and accounting management. Ad hoc wireless networks and software radios are being facilitated by the advancement of active networks; however, they add another level of complexity to active and programmable network management.