|
INTRODUCTION
The ability to rapidly create, deploy, and manage new network services in response
to user demands presents a significant challenge to the research community and
is a key factor driving the development of programmable networks. Existing network
architectures such as the Internet, mobile, telephone, and asynchronous transfer
mode (ATM) exhibit two key limitations that prevent us from meeting this challenge:
" Lack of
intrinsic architectural flexibility in adapting to new user needs and requirements "
Lack of automation of the process of realization and deployment of new and distinct
network architectures
In what follows we make a number of observations about the limitations encountered
when designing and deploying network architectures. First, current network architectures
are deployed on top of a multitude of networking technologies such as land-based,
wireless, mobile, and satellite for a bewildering array of voice, video, and data
applications. Since these architectures offer a very limited capability to match
the many environments and applications, the deployment of these architectures
has predictably met with various degrees of success.
Tremendous difficulties arise, for example, because of the inability of TCP to
match the high loss rate encountered in wireless networks or for mobile IP to
provide fast handoff capabilities with low loss rates to mobile devices. Protocols
other than mobile IP and TCP operating in wireless access networks might help,
but their implementation is difficult to realize. Second, the interface between
the network and the service architecture responsible for basic communication services
(e.g., connection setup procedures in ATM and telephone networks) is rigidly defined
and cannot be replaced, modified, or supplemented. In other cases, such as the
Internet, end user connectivity abstractions provide little support for quality
of service (QoS) guarantees and accounting for usage of network resources (billing).
Third, the creation and deployment of network architecture is a manual, time-consuming,
and costly process.
In response to these limitations, we argue that there is a need to propose, investigate,
and evaluate alternative network architectures to the existing ones (e.g., IP,
ATM, mobile). This challenge goes beyond the proposal for yet experimental network
architecture. Rather, it calls for new approaches to the way we design, develop,
deploy, observe, and analyze new network architectures in response to future needs
and requirements. We believe that the design, deployment, architecting, and management
of new network architectures should be automated and built on a foundation of
spawning networks, a new class of open programmable networks.
We describe the process of automating the creation and deployment of new network
architectures as spawning. The term spawning finds a parallel with an operating
system spawning a child process. By spawning a process the operating system creates
a copy of the calling process. The calling process is known as the parent process
and the new process as the child process. Notably, the child process inherits
its parent's attributes, typically executing on the same hardware (i.e., the same
processor). We envision spawning networks as having the capability to spawn not
processes but complex network architectures. Spawning networks support the deployment
of programmable virtual networks. We
call a virtual network installed on top of a set of network resources a parent
virtual network. We propose the realization of parent virtual networks with the
capability of creating child virtual networks operating on a subset of network
resources and topology, as illustrated in Fig. 1. . For example, part of an access
network to a wired network might be redeployed as a Pico cellular virtual network
that supports fast handoff (e.g., by spawning a Cellular IP virtual network),
as illustrated in Fig. 1. In this case the access network is the parent and the
Cellular IP network the child. We describe a framework for spawning networks based
on the design of the Genesis Kernel, a virtual network operating system capable
of automating a virtual network life cycle process; that is, profiling, spawning,
architecting, and managing programmable network architectures on demand
<<back |