# Spawning networks

Spawning networks are a new class of programmable networks that automate the life cycle process for the creation, deployment, and management of network architecture. These networks represent a groundbreaking approach to the development of programmable networks, enabling the automated creation, deployment, and management of virtual network architectures. This concept revolutionizes the traditional manual and ad hoc process of network deployment, allowing for the dynamic spawning of distinct "child" virtual networks with their own transport, control, and management systems. Spawning networks are capable of operating on a subset of their "parent's" network resources and in isolation from other spawned networks, offering controlled access to communities of users with specific connectivity, security, and quality of service requirements. Their significance lies in their potential to address the limitations of existing network architectures, paving the way for rapid adaptation to new user needs and requirements. By automating the life cycle process for network architectures, spawning networks represent a major advancement in open network control, network programmability, and distributed systems technology.
By supporting the controlled access to communities of users with specific connectivity, security, and quality of service requirements, spawning networks provide a flexible and scalable solution to meet evolving network demands. Their automated life cycle process for network architectures represents a significant advancement in open network control, network programmability, and distributed systems technology.

## Genesis Kernel

The Genesis Kernel plays a pivotal role in enabling the creation, deployment, and management of spawning networks. As a virtual network operating system, the Genesis Kernel has the capability to spawn child network architectures that can support alternative distributed network algorithms and services. It acts as a resource allocator, arbitrating between conflicting requests made by spawned virtual networks, thereby facilitating the efficient utilization of network resources. The Genesis Kernel supports a virtual network life cycle process, which includes the dynamic creation, deployment, and management of virtual network architectures. This process is realized through the interaction of the transport, programming, and life cycle environments, all of which are integral components of the Genesis Kernel framework. Overall, the Genesis Kernel provides the foundational framework and infrastructure necessary for the automated and systematic realization of spawning networks, representing a significant advancement in the field of programmable networks.

## The virtual network life cycle

The virtual network life cycle process involves the dynamic creation, deployment, and management of virtual network architectures. It comprises three key phases:
1.Profiling: This phase captures the blueprint of the virtual network architecture, including addressing, routing, signaling, security, control, and management requirements. It generates an executable profiling script that automates the deployment of programmable virtual networks.
2.Spawning: Systematically sets up the network topology, allocates resources, and binds transport, routing, and network management objects to the physical network infrastructure. Based on the profiling script and available network resources, network objects are created and dispatched to network nodes, dynamically creating a new virtual network architecture.
3.Management: Supports virtual network resource management based on per-virtual-network policy to exert control over multiple spawned network architectures. It also facilitates virtual network architecting, allowing the network designer to analyze and refine network objects that characterize the spawned network architecture.
Through these phases, the virtual network life cycle process enables the automated and systematic creation, deployment, and management of virtual network architectures, providing a flexible and scalable approach to network customization and adaptation.

### Potential Impacts

Spawning networks have the potential to significantly impact the field of programmable networks by addressing key limitations in existing network architectures. By automating the creation, deployment, and management of virtual network architectures, spawning networks offer several benefits:
1.Flexibility and Adaptability: Spawning networks enable rapid adaptation to new user needs and requirements, allowing for the dynamic spawning of distinct virtual networks with specific connectivity, security, and quality of service requirements.
2.Efficient Resource Utilization: The automated life cycle process for network architectures facilitates the efficient utilization of network resources, optimizing resource allocation and network performance.
3.Scalability: Spawning networks provide a scalable solution for network customization, allowing for the controlled access to communities of users with diverse connectivity and service needs.
4.Automation: By automating the network deployment process, spawning networks reduce the manual effort and time required for architecting and deploying new network architectures, leading to improved operational efficiency.

#### Implementation Challenges

The implementation of spawning networks presents several challenges and considerations, encompassing both engineering and research issues:
1.Computational Efficiency: Addressing the computational efficiency and performance of spawning networks is crucial, especially in the context of increasing transmission rates. Balancing the computational power needed for routing and congestion control with the requirements of programmable networks is a significant challenge.
2.Performance Optimization: Implementing fast-track and cut-through techniques to offset potential performance costs associated with nested virtual networks is essential. This involves optimizing packet forwarding and hierarchical link sharing design to maintain network performance.
3.Complexity of Profiling: Profiling network architectures and addressing the complexity associated with this process is a key consideration. Developing efficient profiling mechanisms and tools to capture the blueprint of virtual network architectures is a significant engineering challenge.
4.Inheritance and Provisioning: Leveraging existing network objects and architectural components when constructing new child networks introduces challenges related to inheritance and provisioning characteristics. Ensuring efficient inheritance and provisioning of architectural components is a critical research issue.
5.Scalability and Flexibility: Ensuring that spawning networks are scalable, flexible, and capable of meeting the diverse communication needs of distinct communities is a significant engineering consideration. This involves designing spawning networks to efficiently support a wide range of network architectures and services.
6.Resource Management: Efficiently managing network resources to support the introduction and architecting of spawned virtual networks is a critical challenge. This includes addressing resource partitioning, isolation, and the allocation of resources to spawned virtual networks.
Addressing these challenges and considerations is essential for the successful implementation of spawning networks, requiring a combination of engineering innovation and research advancements in the field of programmable networks.

#### Research and development

The field of programmable networks has seen significant research and development, with several related works and advancements:
1.Open Signaling (Opensig) Community: The Opensig community has been actively involved in designing and developing programmable network prototypes. Their work focuses on modeling communication hardware using open programmable network interfaces to enable third-party software providers to enter the market for telecommunications software.
2.Active Network Program: The DARPA Active Network Program has contributed to the development of active network technologies, exploring the dynamic deployment of network protocols and services.
3.Cellular IP: Research on Cellular IP has been conducted to address the challenges of mobility and programmability in wireless networks, aiming to provide seamless mobility support and efficient network management.
4.NetScript: The NetScript project has explored a language-based approach to active networks, focusing on the development of programming languages and tools for active network environments.
5.Smart Packets for Active Networks: This work has focused on developing smart packets for active networks, aiming to enhance the programmability and intelligence of network packets to support dynamic network services.
6.Survey of Programmable Networks: A comprehensive survey of programmable networks has been conducted, providing insights into the state of the art, challenges, and future directions in the field.
These research efforts and developments have contributed to the advancement of programmable networks, addressing challenges related to network programmability, transportable software, distributed systems technology, and open network control. They have laid the foundation for the development of spawning networks and other innovative approaches to network customization and management.
Overall, spawning networks have the potential to revolutionize the field of programmable networks by offering a systematic and automated approach to network customization, resource control, and adaptation to evolving user demands.
The definition was introduced in a paper titled Spawning Networks, published in IEEE Networks by a group of researchers from Columbia University, University of Hamburg, Intel Corporation, Hitachi Limited, and Nortel Networks.
The authors are Andrew T. Campbell, Michael E. Kounavis, Daniel A. Villela, of Columbia University, John B. Vicente, of Intel Corporation, Hermann G. De Meer, of University of Hamburg, Kazuho Miki, of Hitachi Limited, and Kalai S. Kalaichelvan, of Nortel Networks.
There was also a paper titled "The Genesis Kernel: A Programming System for Spawning Network Architectures", Michael E. Kounavis, Andrew T. Campbell, Stephen Chou, Fabien Modoux, John Vicente and Hao Zhuang.
A first implementation of Spawning Networks was realized at Columbia University as part of the Ph.D thesis work of Michael Kounavis. This implementation is based on the design of the Genesis Kernel, a programming system consisting of three layers: A transport environment which is a collection of programmable virtual routers, a programming environment which offers open access to the programmable data path and a life cycle environment which is responsible for spawning and managing network architectures. One of the concepts used in design of the Genesis Kernel is the creation of a network architecture based on a profiling script specifying the architecture components and their interaction.